From 80d4c17873efdaa270b86d01fd0c5b348d6a6d65 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sun, 3 Mar 2019 14:08:46 +0100
Subject: [PATCH 001/473] Mozilla release 60.5.2
---
.gitignore | 1 +
icecat.spec | 13 +++++++++++--
sources | 2 +-
3 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/.gitignore b/.gitignore
index 6de5154..0b2d2f9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -64,3 +64,4 @@
/icecat-60.4.0-gnu1.tar.bz2
/icecat-60.5.0-gnu1.tar.bz2
/icecat-60.5.1-gnu1.tar.bz2
+/icecat-60.5.2-gnu1.tar.bz2
diff --git a/icecat.spec b/icecat.spec
index 5bbce05..4170ec7 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -80,7 +80,7 @@
%global hardened_build 1
Name: icecat
-Version: 60.5.1
+Version: 60.5.2
Release: 1%{?dist}
Summary: GNU version of Firefox browser
@@ -98,7 +98,7 @@ Source2: %{name}.png
Source3: %{name}-mozconfig-common
##Language files downloaded by source7 script
-%if 0%{build_langpacks}
+%if 0%{?build_langpacks}
Source4: %{name}-%{version}-langpacks.tar.gz
%endif
@@ -503,7 +503,12 @@ MOZ_OPT_FLAGS=$(echo "%{optflags}" | %{__sed} -e 's/-Wall//')
# 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
+%if 0%{?fedora} < 30
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security"
+%else
+# Workaround for mozbz#1531309
+MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-Werror=format-security//')
+%endif
# Disable null pointer gcc6 optimization in gcc6 (rhbz#1328045)
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fno-delete-null-pointer-checks"
# Use hardened build?
@@ -734,6 +739,10 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Sun Mar 03 2019 Antonio Trande - 60.5.2-1
+- Mozilla release 60.5.2
+- Disable Werror-format-security flags
+
* Thu Feb 14 2019 Antonio Trande - 60.5.1-1
- Mozilla release 60.5.1
- Conditional macro for libvpx support
diff --git a/sources b/sources
index 9ffec47..dec668d 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (icecat-60.5.1-gnu1.tar.bz2) = 6867681f5b4d65f78160a7686530975861d08c99a1f5e8d79448c2add3d9886144d3daefdb4d732dbda8ea14870086a41749a4de5e991b06199b66b3a0e6b677
+SHA512 (icecat-60.5.2-gnu1.tar.bz2) = c4c12506f2f270d9e3bcc2007870583cac9e23219c7e0524e90aafde414ec7d4b61fe397d268d35ad480f9217316cae0e83e8c1a8179dbb8184da4131700594a
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From d13ed8c5d3d34ed28e2e497d6663fd87736d5358 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sun, 3 Mar 2019 17:40:46 +0100
Subject: [PATCH 002/473] Add -fpermissive for building on f31
---
icecat.spec | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/icecat.spec b/icecat.spec
index 4170ec7..d335604 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -490,13 +490,6 @@ 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 {} ';'
-# -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
@@ -509,8 +502,12 @@ MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security
# Workaround for mozbz#1531309
MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-Werror=format-security//')
%endif
-# Disable null pointer gcc6 optimization in gcc6 (rhbz#1328045)
-MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fno-delete-null-pointer-checks"
+# Add -fpermissive for building on f31:
+# In file included from /builddir/build/BUILD/icecat-60.5.2/tools/profiler/core/shared-libraries-linux.cc:17:
+# /icecat-60.5.2/tools/profiler/core/platform.h:50:21: error: 'pid_t gettid()' was declared 'extern' and later 'static' [-fpermissive]
+%if 0%{?fedora} > 30
+MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fpermissive"
+%endif
# Use hardened build?
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fPIC -Wl,-z,relro -Wl,-z,now"
From 365f306ca5cec7df3e10292e560d8d81ebf1edc4 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Mon, 4 Mar 2019 11:45:38 +0100
Subject: [PATCH 003/473] Try to fix libevent LD path
---
icecat.spec | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/icecat.spec b/icecat.spec
index d335604..681d51a 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -405,7 +405,7 @@ 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 --with-system-libevent=%{_prefix}/../%{_lib}" >> .mozconfig
echo "ac_add_options --enable-llvm-hacks" >> .mozconfig
%if %{?with_vpx}
echo "ac_add_options --with-system-libvpx" >> .mozconfig
@@ -450,6 +450,9 @@ echo 'ac_add_options --enable-optimize' >> .mozconfig
%endif
echo "ac_add_options --disable-debug" >> .mozconfig
%endif
+%ifarch %{arm}
+echo "ac_add_options --enable-linker=gold" >> .mozconfig
+%endif
echo "ac_add_options --disable-strip" >> .mozconfig
echo "ac_add_options --disable-install-strip" >> .mozconfig
@@ -521,10 +524,10 @@ MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/' -e 's/-O2/-O1/')
# (OOM when linking, rhbz#1238225)
export MOZ_DEBUG_FLAGS=" "
%endif
-%ifarch s390x %{arm} %{power64} aarch64 %{arm} %{ix86}
+%ifarch s390x %{arm} %{power64} aarch64 %{ix86}
MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
%endif
-%ifarch %{arm}
+%ifarch %{arm} %{ix86}
export RUSTFLAGS="-Cdebuginfo=0"
%endif
export CFLAGS=$MOZ_OPT_FLAGS
@@ -739,6 +742,8 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
* Sun Mar 03 2019 Antonio Trande - 60.5.2-1
- Mozilla release 60.5.2
- Disable Werror-format-security flags
+- Enable linker=gold on ARM
+- Try to fix libevent LD path
* Thu Feb 14 2019 Antonio Trande - 60.5.1-1
- Mozilla release 60.5.1
From 1eff813f6802426ae002e8af521dd3d7119f892a Mon Sep 17 00:00:00 2001
From: sagitter
Date: Mon, 4 Mar 2019 12:19:30 +0100
Subject: [PATCH 004/473] Set CXXFLAGS
---
icecat.spec | 21 +++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)
diff --git a/icecat.spec b/icecat.spec
index 681d51a..be17988 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -128,6 +128,7 @@ Source15: %{name}-x11.sh.in
Source16: %{name}-x11.desktop
# Build patches
+Patch2: %{name}-libevent_linkflag.patch
Patch3: mozilla-build-arm.patch
# Unrecognized file?
@@ -322,6 +323,7 @@ tar -xf %{SOURCE5}
##Prevent HTTPS-everywhere addon's installation
sed '/https-everywhere/d' -i ./browser/installer/package-manifest.in
+%patch2 -p0 -b .libevent_linkflag
%patch3 -p1 -b .arm
%patch7 -p0
%patch8 -p0
@@ -405,7 +407,7 @@ 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}/../%{_lib}" >> .mozconfig
+echo "ac_add_options --with-system-libevent=%{_prefix}" >> .mozconfig
echo "ac_add_options --enable-llvm-hacks" >> .mozconfig
%if %{?with_vpx}
echo "ac_add_options --with-system-libvpx" >> .mozconfig
@@ -505,12 +507,6 @@ MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security
# Workaround for mozbz#1531309
MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-Werror=format-security//')
%endif
-# Add -fpermissive for building on f31:
-# In file included from /builddir/build/BUILD/icecat-60.5.2/tools/profiler/core/shared-libraries-linux.cc:17:
-# /icecat-60.5.2/tools/profiler/core/platform.h:50:21: error: 'pid_t gettid()' was declared 'extern' and later 'static' [-fpermissive]
-%if 0%{?fedora} > 30
-MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fpermissive"
-%endif
# Use hardened build?
MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fPIC -Wl,-z,relro -Wl,-z,now"
@@ -531,7 +527,16 @@ MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
export RUSTFLAGS="-Cdebuginfo=0"
%endif
export CFLAGS=$MOZ_OPT_FLAGS
-export CXXFLAGS=$MOZ_OPT_FLAGS
+
+# Add -fpermissive for building on f31:
+# In file included from /builddir/build/BUILD/icecat-60.5.2/tools/profiler/core/shared-libraries-linux.cc:17:
+# /icecat-60.5.2/tools/profiler/core/platform.h:50:21: error: 'pid_t gettid()' was declared 'extern' and later 'static' [-fpermissive]
+%if 0%{?fedora} > 30
+export CXXFLAGS="$MOZ_OPT_FLAGS -fpermissive"
+%else
+export CXXFLAGS="$MOZ_OPT_FLAGS"
+%endif
+
export LDFLAGS=$MOZ_LINK_FLAGS
export PREFIX='%{_prefix}'
From 39f7d271b43d5b5b5e2e4467648c6e70902e068b Mon Sep 17 00:00:00 2001
From: sagitter
Date: Mon, 4 Mar 2019 12:20:35 +0100
Subject: [PATCH 005/473] Add libevent link patch
---
icecat-libevent_linkflag.patch | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
create mode 100644 icecat-libevent_linkflag.patch
diff --git a/icecat-libevent_linkflag.patch b/icecat-libevent_linkflag.patch
new file mode 100644
index 0000000..918c7e4
--- /dev/null
+++ b/icecat-libevent_linkflag.patch
@@ -0,0 +1,20 @@
+--- old-configure.orig.in 2019-03-02 21:49:16.000000000 +0100
++++ old-configure.in 2019-03-04 12:14:23.842685662 +0100
+@@ -1715,7 +1715,7 @@
+ MOZ_SYSTEM_LIBEVENT=
+ elif test -z "$MOZ_SYSTEM_LIBEVENT"; then
+ CFLAGS="-I${LIBEVENT_DIR}/include $CFLAGS"
+- LDFLAGS="-L${LIBEVENT_DIR}/lib $LDFLAGS"
++ LDFLAGS="-L${LIBDIR} $LDFLAGS"
+ MOZ_CHECK_HEADER(event.h,
+ [if test ! -f "${LIBEVENT_DIR}/include/event.h"; then
+ AC_MSG_ERROR([event.h found, but is not in ${LIBEVENT_DIR}/include])
+@@ -1724,7 +1724,7 @@
+ AC_CHECK_LIB(event, event_init,
+ [MOZ_SYSTEM_LIBEVENT=1
+ MOZ_LIBEVENT_CFLAGS="-I${LIBEVENT_DIR}/include"
+- MOZ_LIBEVENT_LIBS="-L${LIBEVENT_DIR}/lib -levent"],
++ MOZ_LIBEVENT_LIBS="-L${LIBDIR} -levent"],
+ [MOZ_SYSTEM_LIBEVENT= MOZ_LIBEVENT_CFLAGS= MOZ_LIBEVENT_LIBS=])
+ fi
+ CFLAGS=$_SAVE_CFLAGS
From 2a63573f46c9d8d085cc37721c826a9e308893a0 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Mon, 4 Mar 2019 18:07:47 +0100
Subject: [PATCH 006/473] Fix gold linker flag on ARM
---
icecat.spec | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/icecat.spec b/icecat.spec
index be17988..c7ad70d 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -520,23 +520,17 @@ MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/' -e 's/-O2/-O1/')
# (OOM when linking, rhbz#1238225)
export MOZ_DEBUG_FLAGS=" "
%endif
-%ifarch s390x %{arm} %{power64} aarch64 %{ix86}
+%ifarch s390x %{power64} aarch64 %{ix86}
MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
%endif
+%ifarch %{arm}
+MOZ_LINK_FLAGS="-Wl,--no-keep-memory"
+%endif
%ifarch %{arm} %{ix86}
export RUSTFLAGS="-Cdebuginfo=0"
%endif
export CFLAGS=$MOZ_OPT_FLAGS
-
-# Add -fpermissive for building on f31:
-# In file included from /builddir/build/BUILD/icecat-60.5.2/tools/profiler/core/shared-libraries-linux.cc:17:
-# /icecat-60.5.2/tools/profiler/core/platform.h:50:21: error: 'pid_t gettid()' was declared 'extern' and later 'static' [-fpermissive]
-%if 0%{?fedora} > 30
-export CXXFLAGS="$MOZ_OPT_FLAGS -fpermissive"
-%else
export CXXFLAGS="$MOZ_OPT_FLAGS"
-%endif
-
export LDFLAGS=$MOZ_LINK_FLAGS
export PREFIX='%{_prefix}'
From a0ff91c47931399cef1d40064611cf824f1b67cf Mon Sep 17 00:00:00 2001
From: sagitter
Date: Tue, 19 Mar 2019 15:55:11 +0100
Subject: [PATCH 007/473] Mozilla release 60.6.0
---
.gitignore | 2 ++
icecat-lang_download.sh | 20 ++++++++++++--------
icecat.spec | 9 ++++++---
sources | 3 ++-
4 files changed, 22 insertions(+), 12 deletions(-)
diff --git a/.gitignore b/.gitignore
index 0b2d2f9..42e32d5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -65,3 +65,5 @@
/icecat-60.5.0-gnu1.tar.bz2
/icecat-60.5.1-gnu1.tar.bz2
/icecat-60.5.2-gnu1.tar.bz2
+/icecat-60.6.0-gnu1.tar.bz2
+/icecat-60.6.0-langpacks.tar.gz
diff --git a/icecat-lang_download.sh b/icecat-lang_download.sh
index 6319089..1d3aa9d 100755
--- a/icecat-lang_download.sh
+++ b/icecat-lang_download.sh
@@ -1,18 +1,22 @@
#!/bin/bash
-VERSION=60.2.0
-URL=http://alpha.gnu.org/gnu/gnuzilla/$VERSION/langpacks/
+VERSION=60.6.0
+URL=https://ftp.mozilla.org/pub/firefox/releases/${VERSION}esr/linux-x86_64/xpi/
for u in $URL; do
-mkdir -p langpacks && cd langpacks
-wget -erobots=off -c -r -l1 -nd -nc -A.xpi -U langpacks $u
-rm -f icecat-$VERSION.ja-JP-mac.langpack.xpi icecat-$VERSION.compare-locales.langpack.xpi
+ mkdir -p langpacks && pushd langpacks
+ wget -erobots=off -c -r -l1 -nd -nc -A.xpi -U langpacks $u
+popd
+done
+pushd langpacks
+for u in `ls *.xpi`; do
+ mv $u icecat-${VERSION}.$u
done
find . -type f -name '*.xpi' | while read FILE ; do
- newfile="$(echo ${FILE} |sed -e 's/60.2.0.//g' -e 's/icecat-//g')" ;
+ newfile="$(echo ${FILE} |sed -e 's/.xpi/.langpack.xpi/g')" ;
mv "${FILE}" "${newfile}" ;
done
-cd ..
-tar -zcvf icecat-$VERSION-langpacks.tar.gz langpacks
+popd
+tar -zcvf icecat-${VERSION}-langpacks.tar.gz langpacks
rm -rf langpacks
exit 0
diff --git a/icecat.spec b/icecat.spec
index c7ad70d..e35f010 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -11,7 +11,7 @@
#
##Active/Deactive language files handling
-%global build_langpacks 0
+%global build_langpacks 1
%define default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html
@@ -80,7 +80,7 @@
%global hardened_build 1
Name: icecat
-Version: 60.5.2
+Version: 60.6.0
Release: 1%{?dist}
Summary: GNU version of Firefox browser
@@ -92,7 +92,6 @@ URL: http://www.gnu.org/software/gnuzilla/
## Modified files are hosted in a dedicated fork repository:
## https://fedorapeople.org/cgit/sagitter/public_git/icecat.git/
Source0: https://sagitter.fedorapeople.org/icecat/v%{version}/%{name}-%{version}-gnu1.tar.bz2
-#Source0: http://alpha.gnu.org/gnu/gnuzilla/%%{version}/icecat-%%{version}-gnu1.tar.bz2
Source2: %{name}.png
Source3: %{name}-mozconfig-common
@@ -738,6 +737,10 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Tue Mar 19 2019 Antonio Trande - 60.6.0-1
+- Mozilla release 60.6.0
+- Enable languages
+
* Sun Mar 03 2019 Antonio Trande - 60.5.2-1
- Mozilla release 60.5.2
- Disable Werror-format-security flags
diff --git a/sources b/sources
index dec668d..95e7be1 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,3 @@
-SHA512 (icecat-60.5.2-gnu1.tar.bz2) = c4c12506f2f270d9e3bcc2007870583cac9e23219c7e0524e90aafde414ec7d4b61fe397d268d35ad480f9217316cae0e83e8c1a8179dbb8184da4131700594a
+SHA512 (icecat-60.6.0-gnu1.tar.bz2) = a31ee52e0f8c69542a141fa432411f23225d40226f9e976b074cdf9f36b57c48984dfc7cf177d1f12de40c4250161232768e5b673be348623a8b7f5b33819dd3
+SHA512 (icecat-60.6.0-langpacks.tar.gz) = c8949951e3333110c1a0762bd6e9accb15111bb4d7c454d842d99416789e2d74e904f08bcc5a0bd6f255875fe78d80b7d2ab284ea267041edee5d83337af121f
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From 498a6e2a85fc99cfaeca5bc67853027d488979dc Mon Sep 17 00:00:00 2001
From: sagitter
Date: Tue, 19 Mar 2019 20:40:03 +0100
Subject: [PATCH 008/473] Patched for building with newer glibc (2.29.9000-4)
(mozilla #1533969)
---
icecat-60.6.0-mozilla-1533969.patch | 32 +++++++++++++++++++++++++++++
icecat.spec | 10 ++++++++-
2 files changed, 41 insertions(+), 1 deletion(-)
create mode 100644 icecat-60.6.0-mozilla-1533969.patch
diff --git a/icecat-60.6.0-mozilla-1533969.patch b/icecat-60.6.0-mozilla-1533969.patch
new file mode 100644
index 0000000..cdf62c5
--- /dev/null
+++ b/icecat-60.6.0-mozilla-1533969.patch
@@ -0,0 +1,32 @@
+--- a/js/src/util/NativeStack.cpp
++++ b/js/src/util/NativeStack.cpp
+@@ -16,6 +16,7 @@
+ #if defined(ANDROID) && !defined(__aarch64__)
+ #include
+ #include
++# define gettid() static_cast(syscall(__NR_gettid))
+ #endif
+ #else
+ #error "Unsupported platform"
+--- a/tools/profiler/core/platform.h
++++ b/tools/profiler/core/platform.h
+@@ -42,16 +42,16 @@
+ #include "PlatformMacros.h"
+ #include
+
+-// We need a definition of gettid(), but glibc doesn't provide a
++// We need a definition of gettid(), but old glibc versions don't provide a
+ // wrapper for it.
+ #if defined(__GLIBC__)
+ #include
+ #include
+-static inline pid_t gettid() { return (pid_t)syscall(SYS_gettid); }
++# define gettid() static_cast(syscall(SYS_gettid))
+ #elif defined(GP_OS_darwin)
+ #include
+ #include
+-static inline pid_t gettid() { return (pid_t)syscall(SYS_thread_selfid); }
++# define gettid() static_cast(syscall(SYS_thread_selfid))
+ #elif defined(GP_OS_android)
+ #include
+ #elif defined(GP_OS_windows)
diff --git a/icecat.spec b/icecat.spec
index e35f010..c81cd4e 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -81,7 +81,7 @@
Name: icecat
Version: 60.6.0
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: GNU version of Firefox browser
## Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -164,6 +164,7 @@ Patch417: bug1375074-save-restore-x28.patch
Patch418: mozilla-1436242.patch
Patch420: %{name}-disable-dbus-remote.patch
Patch421: %{name}-bz1445383.patch
+Patch422: %{name}-%{version}-mozilla-1533969.patch
# Wayland specific upstream patches
Patch565: firefox-pipewire.patch
@@ -357,6 +358,10 @@ sed '/https-everywhere/d' -i ./browser/installer/package-manifest.in
%patch420 -p1 -b .%{name}-disable-dbus-remote
%patch421 -p1 -b .%{name}-update-ccache-stats-parser
+%if 0%{?fedora} > 30
+%patch422 -p1 -b .%{name}-%{version}-mozilla-1533969
+%endif
+
# Wayland specific upstream patches
dos2unix %{PATCH565}
%patch565 -p1 -b .firefox-pipewire
@@ -737,6 +742,9 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Tue Mar 19 2019 Antonio Trande - 60.6.0-2
+- Patched for building with newer glibc (2.29.9000-4) (mozilla #1533969)
+
* Tue Mar 19 2019 Antonio Trande - 60.6.0-1
- Mozilla release 60.6.0
- Enable languages
From 034aedacb4ba4b1e1a0a5f99d5b34cdfbc5710de Mon Sep 17 00:00:00 2001
From: sagitter
Date: Wed, 20 Mar 2019 12:41:49 +0100
Subject: [PATCH 009/473] Patched for building on ARM (rhbz #1658940)
---
...--fix-mozillaSignalTrampoline-to-work.patch | 12 ++++++++++++
icecat-lang_download.sh | 18 +++++++++---------
icecat.spec | 16 ++++++++++++----
sources | 2 +-
4 files changed, 34 insertions(+), 14 deletions(-)
create mode 100644 Bug-1238661-2---fix-mozillaSignalTrampoline-to-work.patch
diff --git a/Bug-1238661-2---fix-mozillaSignalTrampoline-to-work.patch b/Bug-1238661-2---fix-mozillaSignalTrampoline-to-work.patch
new file mode 100644
index 0000000..ccec54a
--- /dev/null
+++ b/Bug-1238661-2---fix-mozillaSignalTrampoline-to-work.patch
@@ -0,0 +1,12 @@
+diff -up firefox-60.0/mfbt/LinuxSignal.h.mozilla-1238661 firefox-60.0/mfbt/LinuxSignal.h
+--- firefox-60.0/mfbt/LinuxSignal.h.mozilla-1238661 2018-04-27 08:55:38.848241768 +0200
++++ firefox-60.0/mfbt/LinuxSignal.h 2018-04-27 09:06:47.946769859 +0200
+@@ -22,7 +22,7 @@
+ void* aContext) {
+ asm volatile("nop; nop; nop; nop" : : : "memory");
+
+- asm volatile("b %0" : : "X"(H) : "memory");
++ H(aSignal, aInfo, aContext);
+ }
+
+ #define MOZ_SIGNAL_TRAMPOLINE(h) (mozilla::SignalTrampoline)
diff --git a/icecat-lang_download.sh b/icecat-lang_download.sh
index 1d3aa9d..767e093 100755
--- a/icecat-lang_download.sh
+++ b/icecat-lang_download.sh
@@ -8,15 +8,15 @@ for u in $URL; do
wget -erobots=off -c -r -l1 -nd -nc -A.xpi -U langpacks $u
popd
done
-pushd langpacks
-for u in `ls *.xpi`; do
- mv $u icecat-${VERSION}.$u
-done
-find . -type f -name '*.xpi' | while read FILE ; do
- newfile="$(echo ${FILE} |sed -e 's/.xpi/.langpack.xpi/g')" ;
- mv "${FILE}" "${newfile}" ;
-done
-popd
+#pushd langpacks
+#for u in `ls *.xpi`; do
+# mv $u icecat-${VERSION}.$u
+#done
+#find . -type f -name '*.xpi' | while read FILE ; do
+# newfile="$(echo ${FILE} |sed -e 's/.xpi/.langpack.xpi/g')" ;
+# mv "${FILE}" "${newfile}" ;
+#done
+#popd
tar -zcvf icecat-${VERSION}-langpacks.tar.gz langpacks
rm -rf langpacks
exit 0
diff --git a/icecat.spec b/icecat.spec
index c81cd4e..a42940f 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -158,7 +158,8 @@ Patch226: rhbz-1354671.patch
# Upstream patches
Patch406: mozilla-256180.patch
Patch413: mozilla-1353817.patch
-Patch415: Bug-1238661---fix-mozillaSignalTrampoline-to-work-.patch
+Patch414: Bug-1238661---fix-mozillaSignalTrampoline-to-work-.patch
+Patch415: Bug-1238661-2---fix-mozillaSignalTrampoline-to-work.patch
Patch416: mozilla-1424422.patch
Patch417: bug1375074-save-restore-x28.patch
Patch418: mozilla-1436242.patch
@@ -342,7 +343,8 @@ sed '/https-everywhere/d' -i ./browser/installer/package-manifest.in
%patch406 -p0 -b .256180
%patch413 -p1 -b .1353817
%ifarch %{arm}
-%patch415 -p1 -b .mozilla-1238661
+#%%patch414 -p1 -b .Bug-1238661---fix-mozillaSignalTrampoline-to-work
+%patch415 -p1 -b .Bug-1238661-2---fix-mozillaSignalTrampoline-to-work
%endif
%patch416 -p1 -b .1424422
%patch417 -p1 -b .bug1375074-save-restore-x28
@@ -458,6 +460,9 @@ echo "ac_add_options --disable-debug" >> .mozconfig
%endif
%ifarch %{arm}
echo "ac_add_options --enable-linker=gold" >> .mozconfig
+
+# See https://bugzilla.redhat.com/show_bug.cgi?id=1658940#c19
+sed -i -e "s/MOZILLA_MAY_SUPPORT_NEON/MOZILLA_MAY_SUPPORT_NEONXXXX/g" gfx/ycbcr/*
%endif
echo "ac_add_options --disable-strip" >> .mozconfig
@@ -528,10 +533,11 @@ export MOZ_DEBUG_FLAGS=" "
MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
%endif
%ifarch %{arm}
-MOZ_LINK_FLAGS="-Wl,--no-keep-memory"
+MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--no-keep-files-mapped -Wl,--no-map-whole-files -Wl,--no-mmap-output-file"
%endif
%ifarch %{arm} %{ix86}
export RUSTFLAGS="-Cdebuginfo=0"
+export MOZ_RUST_DEFAULT_FLAGS="-Cdebuginfo=0 -Copt-level=0"
%endif
export CFLAGS=$MOZ_OPT_FLAGS
export CXXFLAGS="$MOZ_OPT_FLAGS"
@@ -742,8 +748,10 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
-* Tue Mar 19 2019 Antonio Trande - 60.6.0-2
+* Wed Mar 20 2019 Antonio Trande - 60.6.0-2
- Patched for building with newer glibc (2.29.9000-4) (mozilla #1533969)
+- Patched for building on ARM (rhbz #1658940)
+- Language files re-based
* Tue Mar 19 2019 Antonio Trande - 60.6.0-1
- Mozilla release 60.6.0
diff --git a/sources b/sources
index 95e7be1..b3a3d08 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (icecat-60.6.0-gnu1.tar.bz2) = a31ee52e0f8c69542a141fa432411f23225d40226f9e976b074cdf9f36b57c48984dfc7cf177d1f12de40c4250161232768e5b673be348623a8b7f5b33819dd3
-SHA512 (icecat-60.6.0-langpacks.tar.gz) = c8949951e3333110c1a0762bd6e9accb15111bb4d7c454d842d99416789e2d74e904f08bcc5a0bd6f255875fe78d80b7d2ab284ea267041edee5d83337af121f
+SHA512 (icecat-60.6.0-langpacks.tar.gz) = e694a1d587af77adb2c7f1d91f7a3f51b90d18fef1fd3247ad837022901b81e879369fb6025a45acfa07544ba356901fc80f9a5f93dfc9b7b09613a1cee8ab41
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From f865a4ca1061decd3159c074fdaaca16ec34d8d4 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Wed, 20 Mar 2019 13:10:17 +0100
Subject: [PATCH 010/473] Change LD flags
---
icecat.spec | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/icecat.spec b/icecat.spec
index a42940f..278563f 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -530,10 +530,10 @@ MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/' -e 's/-O2/-O1/')
export MOZ_DEBUG_FLAGS=" "
%endif
%ifarch s390x %{power64} aarch64 %{ix86}
-MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
+MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads -Wl,--print-memory-usage"
%endif
%ifarch %{arm}
-MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--no-keep-files-mapped -Wl,--no-map-whole-files -Wl,--no-mmap-output-file"
+MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--no-map-whole-files -Wl,--no-mmap-output-file -Wl,--print-memory-usage"
%endif
%ifarch %{arm} %{ix86}
export RUSTFLAGS="-Cdebuginfo=0"
From 8ed873edc4144f9a5f3334517947c8c4873e1372 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Wed, 20 Mar 2019 14:20:09 +0100
Subject: [PATCH 011/473] Use -Wl,-fuse-ld=gold on ARM
---
icecat.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/icecat.spec b/icecat.spec
index 278563f..2b4b46c 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -533,7 +533,7 @@ export MOZ_DEBUG_FLAGS=" "
MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads -Wl,--print-memory-usage"
%endif
%ifarch %{arm}
-MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--no-map-whole-files -Wl,--no-mmap-output-file -Wl,--print-memory-usage"
+MOZ_LINK_FLAGS="-Wl,-fuse-ld=gold -Wl,--no-keep-memory -Wl,--no-map-whole-files -Wl,--no-mmap-output-file -Wl,--print-memory-usage"
%endif
%ifarch %{arm} %{ix86}
export RUSTFLAGS="-Cdebuginfo=0"
From 7dd2a2a88187e9b909a2cf6df93c01a02b1afeda Mon Sep 17 00:00:00 2001
From: sagitter
Date: Wed, 20 Mar 2019 16:05:51 +0100
Subject: [PATCH 012/473] Remove -Wl,--print-memory-usage option
---
icecat.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/icecat.spec b/icecat.spec
index 2b4b46c..8a87a8d 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -533,7 +533,7 @@ export MOZ_DEBUG_FLAGS=" "
MOZ_LINK_FLAGS="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads -Wl,--print-memory-usage"
%endif
%ifarch %{arm}
-MOZ_LINK_FLAGS="-Wl,-fuse-ld=gold -Wl,--no-keep-memory -Wl,--no-map-whole-files -Wl,--no-mmap-output-file -Wl,--print-memory-usage"
+MOZ_LINK_FLAGS="-Wl,-fuse-ld=gold -Wl,--no-keep-memory -Wl,--no-map-whole-files -Wl,--no-mmap-output-file"
%endif
%ifarch %{arm} %{ix86}
export RUSTFLAGS="-Cdebuginfo=0"
From 715b11c212427a42e7b44a1edcaa7094a4ba94cd Mon Sep 17 00:00:00 2001
From: sagitter
Date: Thu, 21 Mar 2019 10:54:49 +0100
Subject: [PATCH 013/473] Undo latest changes for ARM | Exclude ARM builds
---
icecat.spec | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/icecat.spec b/icecat.spec
index 8a87a8d..d53d707 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -79,6 +79,9 @@
# Use mozilla hardening option?
%global hardened_build 1
+# Exclude ARM builds for rhbz #1658940
+ExcludeArch: %{arm}
+
Name: icecat
Version: 60.6.0
Release: 2%{?dist}
@@ -159,7 +162,6 @@ Patch226: rhbz-1354671.patch
Patch406: mozilla-256180.patch
Patch413: mozilla-1353817.patch
Patch414: Bug-1238661---fix-mozillaSignalTrampoline-to-work-.patch
-Patch415: Bug-1238661-2---fix-mozillaSignalTrampoline-to-work.patch
Patch416: mozilla-1424422.patch
Patch417: bug1375074-save-restore-x28.patch
Patch418: mozilla-1436242.patch
@@ -343,8 +345,7 @@ sed '/https-everywhere/d' -i ./browser/installer/package-manifest.in
%patch406 -p0 -b .256180
%patch413 -p1 -b .1353817
%ifarch %{arm}
-#%%patch414 -p1 -b .Bug-1238661---fix-mozillaSignalTrampoline-to-work
-%patch415 -p1 -b .Bug-1238661-2---fix-mozillaSignalTrampoline-to-work
+%patch414 -p1 -b .Bug-1238661---fix-mozillaSignalTrampoline-to-work
%endif
%patch416 -p1 -b .1424422
%patch417 -p1 -b .bug1375074-save-restore-x28
@@ -460,9 +461,6 @@ echo "ac_add_options --disable-debug" >> .mozconfig
%endif
%ifarch %{arm}
echo "ac_add_options --enable-linker=gold" >> .mozconfig
-
-# See https://bugzilla.redhat.com/show_bug.cgi?id=1658940#c19
-sed -i -e "s/MOZILLA_MAY_SUPPORT_NEON/MOZILLA_MAY_SUPPORT_NEONXXXX/g" gfx/ycbcr/*
%endif
echo "ac_add_options --disable-strip" >> .mozconfig
@@ -748,9 +746,9 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
-* Wed Mar 20 2019 Antonio Trande - 60.6.0-2
+* Thu Mar 21 2019 Antonio Trande - 60.6.0-2
- Patched for building with newer glibc (2.29.9000-4) (mozilla #1533969)
-- Patched for building on ARM (rhbz #1658940)
+- Excluded on ARM (rhbz #1658940)
- Language files re-based
* Tue Mar 19 2019 Antonio Trande - 60.6.0-1
From dc2b379d3c7d9a31155af82fc09518b280ddfbc0 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 23 Mar 2019 18:23:43 +0100
Subject: [PATCH 014/473] Mozilla release 60.6.1
---
.gitignore | 2 ++
...61-2---fix-mozillaSignalTrampoline-to-work.patch | 12 ------------
...969.patch => icecat-60.6.1-mozilla-1533969.patch | 0
icecat-lang_download.sh | 2 +-
icecat.spec | 13 ++++++++++---
sources | 4 ++--
6 files changed, 15 insertions(+), 18 deletions(-)
delete mode 100644 Bug-1238661-2---fix-mozillaSignalTrampoline-to-work.patch
rename icecat-60.6.0-mozilla-1533969.patch => icecat-60.6.1-mozilla-1533969.patch (100%)
diff --git a/.gitignore b/.gitignore
index 42e32d5..afea17a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -67,3 +67,5 @@
/icecat-60.5.2-gnu1.tar.bz2
/icecat-60.6.0-gnu1.tar.bz2
/icecat-60.6.0-langpacks.tar.gz
+/icecat-60.6.1-gnu1.tar.bz2
+/icecat-60.6.1-langpacks.tar.gz
diff --git a/Bug-1238661-2---fix-mozillaSignalTrampoline-to-work.patch b/Bug-1238661-2---fix-mozillaSignalTrampoline-to-work.patch
deleted file mode 100644
index ccec54a..0000000
--- a/Bug-1238661-2---fix-mozillaSignalTrampoline-to-work.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up firefox-60.0/mfbt/LinuxSignal.h.mozilla-1238661 firefox-60.0/mfbt/LinuxSignal.h
---- firefox-60.0/mfbt/LinuxSignal.h.mozilla-1238661 2018-04-27 08:55:38.848241768 +0200
-+++ firefox-60.0/mfbt/LinuxSignal.h 2018-04-27 09:06:47.946769859 +0200
-@@ -22,7 +22,7 @@
- void* aContext) {
- asm volatile("nop; nop; nop; nop" : : : "memory");
-
-- asm volatile("b %0" : : "X"(H) : "memory");
-+ H(aSignal, aInfo, aContext);
- }
-
- #define MOZ_SIGNAL_TRAMPOLINE(h) (mozilla::SignalTrampoline)
diff --git a/icecat-60.6.0-mozilla-1533969.patch b/icecat-60.6.1-mozilla-1533969.patch
similarity index 100%
rename from icecat-60.6.0-mozilla-1533969.patch
rename to icecat-60.6.1-mozilla-1533969.patch
diff --git a/icecat-lang_download.sh b/icecat-lang_download.sh
index 767e093..9dd3738 100755
--- a/icecat-lang_download.sh
+++ b/icecat-lang_download.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-VERSION=60.6.0
+VERSION=60.6.1
URL=https://ftp.mozilla.org/pub/firefox/releases/${VERSION}esr/linux-x86_64/xpi/
for u in $URL; do
diff --git a/icecat.spec b/icecat.spec
index d53d707..d15fd6e 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -70,12 +70,15 @@
%bcond_without jack
%if 0%{?fedora} > 29
-%global wayland_backend_default 1
%global with_vpx 0
%else
%global with_vpx 1
%endif
+%if 0%{?fedora} > 30
+%global wayland_backend_default 1
+%endif
+
# Use mozilla hardening option?
%global hardened_build 1
@@ -83,8 +86,8 @@
ExcludeArch: %{arm}
Name: icecat
-Version: 60.6.0
-Release: 2%{?dist}
+Version: 60.6.1
+Release: 1%{?dist}
Summary: GNU version of Firefox browser
## Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -746,6 +749,10 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Fri Mar 22 2019 Antonio Trande - 60.6.1-1
+- Mozilla release 60.6.1
+- Wayland backend made default starting from Fedora 31 (rhbz#1691852)
+
* Thu Mar 21 2019 Antonio Trande - 60.6.0-2
- Patched for building with newer glibc (2.29.9000-4) (mozilla #1533969)
- Excluded on ARM (rhbz #1658940)
diff --git a/sources b/sources
index b3a3d08..d8ad96b 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (icecat-60.6.0-gnu1.tar.bz2) = a31ee52e0f8c69542a141fa432411f23225d40226f9e976b074cdf9f36b57c48984dfc7cf177d1f12de40c4250161232768e5b673be348623a8b7f5b33819dd3
-SHA512 (icecat-60.6.0-langpacks.tar.gz) = e694a1d587af77adb2c7f1d91f7a3f51b90d18fef1fd3247ad837022901b81e879369fb6025a45acfa07544ba356901fc80f9a5f93dfc9b7b09613a1cee8ab41
+SHA512 (icecat-60.6.1-gnu1.tar.bz2) = 7b07d752c31f28ed0f7b3d35dbc23c878fa9a8262174a5b5396e0a9eb9a64b9ba224707f1d466d484534441e5a60931825d47b501f1bcc26c8adffd1c43360cf
+SHA512 (icecat-60.6.1-langpacks.tar.gz) = 1acaac68119381df7fd25189ec53786b2f962781157a9e3399bbe130cd6accb7db062345c7da2380df08a119acd22ab1a1b79eae3a7c8903a94723f34371071a
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From 7dd67032d5be1533cdfc95d73e4a23e8efe39791 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Thu, 28 Mar 2019 17:55:46 +0100
Subject: [PATCH 015/473] Test-1 for using locale files correctly
---
icecat.spec | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/icecat.spec b/icecat.spec
index d15fd6e..30becc0 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -87,7 +87,7 @@ ExcludeArch: %{arm}
Name: icecat
Version: 60.6.1
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: GNU version of Firefox browser
## Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -469,7 +469,7 @@ echo "ac_add_options --enable-linker=gold" >> .mozconfig
echo "ac_add_options --disable-strip" >> .mozconfig
echo "ac_add_options --disable-install-strip" >> .mozconfig
echo "ac_add_options --disable-tests" >> .mozconfig
-echo "ac_add_options --with-l10n-base=$PWD/l10n" >> .mozconfig
+#echo "ac_add_options --with-l10n-base=" >> .mozconfig
echo "ac_add_options --disable-rust-tests" >> .mozconfig
echo "ac_add_options --disable-gtest-in-build" >> .mozconfig
@@ -613,9 +613,10 @@ 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
+tree -L 4 objdir/dist/bin/browser/chrome/
+#cat > objdir/dist/bin/browser/chrome/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 0%{?build_langpacks}
@@ -749,6 +750,9 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Thu Mar 28 2019 Antonio Trande - 60.6.1-2
+- Test-1 for using locale files correctly
+
* Fri Mar 22 2019 Antonio Trande - 60.6.1-1
- Mozilla release 60.6.1
- Wayland backend made default starting from Fedora 31 (rhbz#1691852)
From 3986e2a985648f39cb526e57e5c0e191afaa3ff0 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Thu, 28 Mar 2019 19:53:18 +0100
Subject: [PATCH 016/473] Add tree
---
icecat.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/icecat.spec b/icecat.spec
index 30becc0..94e29d7 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -248,7 +248,7 @@ BuildRequires: pulseaudio-libs-devel
%if %{with jack}
BuildRequires: jack-audio-connection-kit-devel
%endif
-BuildRequires: yasm
+BuildRequires: yasm, tree
BuildRequires: llvm
BuildRequires: llvm-devel
BuildRequires: clang
From 24238bac1de0f218ce8369a249a558f7124790f8 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Thu, 28 Mar 2019 20:51:59 +0100
Subject: [PATCH 017/473] Test-2 for using locale files correctly
---
icecat.spec | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/icecat.spec b/icecat.spec
index 94e29d7..a9c3a16 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -248,7 +248,7 @@ BuildRequires: pulseaudio-libs-devel
%if %{with jack}
BuildRequires: jack-audio-connection-kit-devel
%endif
-BuildRequires: yasm, tree
+BuildRequires: yasm
BuildRequires: llvm
BuildRequires: llvm-devel
BuildRequires: clang
@@ -613,10 +613,9 @@ mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1
install -p -m 644 %{SOURCE6} $RPM_BUILD_ROOT%{_mandir}/man1/
##Make sure locale works for langpacks
-tree -L 4 objdir/dist/bin/browser/chrome/
-#cat > objdir/dist/bin/browser/chrome/defaults/preferences/icecat-l10n.js << EOF
-#pref("general.useragent.locale", "chrome://global/locale/intl.properties");
-#EOF
+cat > objdir/dist/bin/browser/chrome/en-US/locale/browser/preferences/icecat-l10n.js << EOF
+pref("general.useragent.locale", "chrome://en-US/locale/en-US/global-platform/unix/intl.properties");
+EOF
##Extract langpacks, make any mods needed, repack the langpack, and install it.
%if 0%{?build_langpacks}
From 2608d61ffe2057f5d43ba7786df5261d70b7aaa3 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 30 Mar 2019 17:19:36 +0100
Subject: [PATCH 018/473] Test-2 for using locale files correctly
---
icecat.spec | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/icecat.spec b/icecat.spec
index a9c3a16..ac1fe98 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -469,7 +469,12 @@ echo "ac_add_options --enable-linker=gold" >> .mozconfig
echo "ac_add_options --disable-strip" >> .mozconfig
echo "ac_add_options --disable-install-strip" >> .mozconfig
echo "ac_add_options --disable-tests" >> .mozconfig
-#echo "ac_add_options --with-l10n-base=" >> .mozconfig
+
+# Localization
+%if 0%{?build_langpacks}
+echo "ac_add_options --enable-ui-locale=ISOcode" >> .mozconfig
+echo "ac_add_options --with-l10n-base=$PWD/l10n" >> .mozconfig
+%endif
echo "ac_add_options --disable-rust-tests" >> .mozconfig
echo "ac_add_options --disable-gtest-in-build" >> .mozconfig
@@ -612,11 +617,6 @@ chmod 755 %{buildroot}%{_bindir}/%{name}-wayland
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/chrome/en-US/locale/browser/preferences/icecat-l10n.js << EOF
-pref("general.useragent.locale", "chrome://en-US/locale/en-US/global-platform/unix/intl.properties");
-EOF
-
##Extract langpacks, make any mods needed, repack the langpack, and install it.
%if 0%{?build_langpacks}
echo > %{name}.lang
From 39dd1233801b86e58598c1e4611f0fcd03643088 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 30 Mar 2019 19:11:04 +0100
Subject: [PATCH 019/473] Test-3 for using locale files correctly
---
icecat.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/icecat.spec b/icecat.spec
index ac1fe98..f92d9a8 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -472,7 +472,7 @@ echo "ac_add_options --disable-tests" >> .mozconfig
# Localization
%if 0%{?build_langpacks}
-echo "ac_add_options --enable-ui-locale=ISOcode" >> .mozconfig
+echo "ac_add_options --enable-ui-locale="ach af an ar ast as az be bg bn-BD bn-IN br bs cak ca cs cy da de dsb el en-GB en-US en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM ia id is it ja kab ka kk km kn ko lij lt lv mai mk ml mr ms my nb-NO ne-NP nl nn-NO oc or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv-SE ta te th tr uk ur uz vi xh zh-CN zh-TW" >> .mozconfig
echo "ac_add_options --with-l10n-base=$PWD/l10n" >> .mozconfig
%endif
From c8d3f6d3b960b7cb3103430418a3aa083457c73f Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 30 Mar 2019 19:22:55 +0100
Subject: [PATCH 020/473] Fix typo
---
icecat.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/icecat.spec b/icecat.spec
index f92d9a8..9d40e76 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -472,7 +472,7 @@ echo "ac_add_options --disable-tests" >> .mozconfig
# Localization
%if 0%{?build_langpacks}
-echo "ac_add_options --enable-ui-locale="ach af an ar ast as az be bg bn-BD bn-IN br bs cak ca cs cy da de dsb el en-GB en-US en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM ia id is it ja kab ka kk km kn ko lij lt lv mai mk ml mr ms my nb-NO ne-NP nl nn-NO oc or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv-SE ta te th tr uk ur uz vi xh zh-CN zh-TW" >> .mozconfig
+echo "ac_add_options --enable-ui-locale="ach af an ar ast as az be bg bn-BD bn-IN br bs cak ca cs cy da de dsb el en-GB en-US en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM ia id is it ja kab ka kk km kn ko lij lt lv mai mk ml mr ms my nb-NO ne-NP nl nn-NO oc or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv-SE ta te th tr uk ur uz vi xh zh-CN zh-TW"" >> .mozconfig
echo "ac_add_options --with-l10n-base=$PWD/l10n" >> .mozconfig
%endif
From 22cd89f4bc5a5a174ad963eaf8575d3f271fc3e2 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 30 Mar 2019 20:09:19 +0100
Subject: [PATCH 021/473] Undo last chenages
---
icecat.spec | 1 -
1 file changed, 1 deletion(-)
diff --git a/icecat.spec b/icecat.spec
index 9d40e76..1c60aec 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -472,7 +472,6 @@ echo "ac_add_options --disable-tests" >> .mozconfig
# Localization
%if 0%{?build_langpacks}
-echo "ac_add_options --enable-ui-locale="ach af an ar ast as az be bg bn-BD bn-IN br bs cak ca cs cy da de dsb el en-GB en-US en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM ia id is it ja kab ka kk km kn ko lij lt lv mai mk ml mr ms my nb-NO ne-NP nl nn-NO oc or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq sr sv-SE ta te th tr uk ur uz vi xh zh-CN zh-TW"" >> .mozconfig
echo "ac_add_options --with-l10n-base=$PWD/l10n" >> .mozconfig
%endif
From d628ecf467614a4ccee9d2ede248ed025b8765e6 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 6 Apr 2019 21:20:41 +0200
Subject: [PATCH 022/473] Release 60.6.1-gnu2
---
.gitignore | 1 +
icecat-wayland.sh.in | 4 ++--
icecat-x11.sh.in | 4 ++--
icecat.sh.in | 13 +++++-----
icecat.spec | 56 +++++++++++++++++++++++++-------------------
sources | 2 +-
6 files changed, 45 insertions(+), 35 deletions(-)
diff --git a/.gitignore b/.gitignore
index afea17a..eed362d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -69,3 +69,4 @@
/icecat-60.6.0-langpacks.tar.gz
/icecat-60.6.1-gnu1.tar.bz2
/icecat-60.6.1-langpacks.tar.gz
+/icecat-60.6.1-gnu2.tar.bz2
diff --git a/icecat-wayland.sh.in b/icecat-wayland.sh.in
index 5c6c9d7..d04465c 100644
--- a/icecat-wayland.sh.in
+++ b/icecat-wayland.sh.in
@@ -3,5 +3,5 @@
# Run GNU IceCat under Wayland
#
-export GDK_BACKEND=wayland
-exec /usr/bin/icecat "$@"
+export MOZ_ENABLE_WAYLAND=1
+exec /__PREFIX__/bin/icecat "$@"
diff --git a/icecat-x11.sh.in b/icecat-x11.sh.in
index f7173e5..e80fad2 100644
--- a/icecat-x11.sh.in
+++ b/icecat-x11.sh.in
@@ -3,5 +3,5 @@
# Run GNU IceCat on X11 backend
#
-export GDK_BACKEND=x11
-exec /usr/bin/icecat "$@"
+export MOZ_DISABLE_WAYLAND=1
+exec /__PREFIX__/bin/icecat "$@"
diff --git a/icecat.sh.in b/icecat.sh.in
index 704cccc..e4c1a24 100644
--- a/icecat.sh.in
+++ b/icecat.sh.in
@@ -69,10 +69,10 @@ MOZ_LAUNCHER="$MOZ_DIST_BIN/run-icecat.sh"
##
## Enable X11 backend by default?
##
-if __DEFAULT_X11__; then
- if ! [ "$GDK_BACKEND" ]; then
- export GDK_BACKEND=x11
- fi
+if __DEFAULT_WAYLAND__ && ! [ $MOZ_DISABLE_WAYLAND ]; then
+ if [ "$XDG_CURRENT_DESKTOP" == "GNOME" ]; then
+ export MOZ_ENABLE_WAYLAND=1
+ fi
fi
##
@@ -107,7 +107,8 @@ export MOZ_PLUGIN_PATH
##
## Set MOZ_APP_LAUNCHER for gnome-session
##
-export MOZ_APP_LAUNCHER="/usr/bin/icecat"
+export MOZ_APP_LAUNCHER="/__PREFIX__/bin/icecat"
+
##
## Set FONTCONFIG_PATH for Xft/fontconfig
@@ -148,7 +149,7 @@ export MOZ_USE_XINPUT2=1
##
-## To disable the use of Firefox localization, set MOZ_DISABLE_LANGPACKS=1
+## To disable the use of IceCat localization, set MOZ_DISABLE_LANGPACKS=1
## in your environment before launching Firefox.
##
#
diff --git a/icecat.spec b/icecat.spec
index 1c60aec..26292c4 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -18,6 +18,7 @@
##Define installation directories
%global icecatappdir %{_libdir}/%{name}
%global icecat_ver %{name}-%{version}
+%global gnu_ver gnu2
%global icecat_devel %{name}-devel-%{version}
##Define language files directory
@@ -45,11 +46,7 @@
%endif
# Use system libicu?
-%if 0%{?fedora} > 28
%global system_libicu 1
-%else
-%global system_libicu 0
-%endif
# Use system nspr/nss?
%global system_nss 1
@@ -87,7 +84,7 @@ ExcludeArch: %{arm}
Name: icecat
Version: 60.6.1
-Release: 2%{?dist}
+Release: 2.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
## Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -97,7 +94,7 @@ URL: http://www.gnu.org/software/gnuzilla/
## Source archive created by scripts based on Gnuzilla files.
## Modified files are hosted in a dedicated fork repository:
## https://fedorapeople.org/cgit/sagitter/public_git/icecat.git/
-Source0: https://sagitter.fedorapeople.org/icecat/v%{version}/%{name}-%{version}-gnu1.tar.bz2
+Source0: https://sagitter.fedorapeople.org/icecat/v%{version}/%{name}-%{version}-gnu2.tar.bz2
Source2: %{name}.png
Source3: %{name}-mozconfig-common
@@ -270,10 +267,10 @@ Requires: nspr >= %{nspr_build_version}
Requires: nss >= %{nss_build_version}
%endif
Requires: fedora-bookmarks
-Suggests: mozilla-https-everywhere
Suggests: mozilla-ublock-origin
Provides: webclient
+Provides: mozilla-https-everywhere = 20190131
%description
GNUZilla Icecat is a fully-free fork of Mozilla Firefox ESR.
@@ -326,9 +323,6 @@ find . -type f -name "*.c" -exec chmod 0644 '{}' \;
##Copy license files
tar -xf %{SOURCE5}
-##Prevent HTTPS-everywhere addon's installation
-sed '/https-everywhere/d' -i ./browser/installer/package-manifest.in
-
%patch2 -p0 -b .libevent_linkflag
%patch3 -p1 -b .arm
%patch7 -p0
@@ -586,29 +580,26 @@ done
mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
desktop-file-install --dir $RPM_BUILD_ROOT%{_datadir}/applications %{SOURCE14}
+# set up the IceCat start script
%if 0%{?wayland_backend_default}
-desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE16}
+%global wayland_default true
%else
-desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE9}
-%endif
-
-# set up the firefox start script
-%if 0%{?wayland_backend_default}
-%global x11_state false
-%else
-%global x11_state true
+%global wayland_default false
%endif
rm -rf $RPM_BUILD_ROOT%{_bindir}/%{name}
-sed -e 's/__DEFAULT_X11__/%{x11_state}/' %{SOURCE13} > %{buildroot}%{_bindir}/%{name}
+%{__sed} -e 's/__DEFAULT_WAYLAND__/%{wayland_default}/' \
+ -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE13} > %{buildroot}%{_bindir}/%{name}
chmod 755 %{buildroot}%{_bindir}/%{name}
%if 0%{?wayland_backend_default}
-cat %{SOURCE15} > %{buildroot}%{_bindir}/%{name}-x11
+%{__sed} -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE15} > %{buildroot}%{_bindir}/%{name}-x11
chmod 755 %{buildroot}%{_bindir}/%{name}-x11
+desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE16}
%else
-cat %{SOURCE12} > %{buildroot}%{_bindir}/%{name}-wayland
+%{__sed} -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE12} > %{buildroot}%{_bindir}/%{name}-wayland
chmod 755 %{buildroot}%{_bindir}/%{name}-wayland
+desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE9}
%endif
#
@@ -647,6 +638,21 @@ ln -s langpack-$language_long@icecat.mozilla.org.xpi langpack-$language_short@ic
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
@@ -748,8 +754,10 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
-* Thu Mar 28 2019 Antonio Trande - 60.6.1-2
-- Test-1 for using locale files correctly
+* Sat Apr 06 2019 Antonio Trande - 60.6.1-2.gnu2
+- Source archive rebuilt (gnu2)
+- Update extensions
+- Use bundled https-everywhere extension
* Fri Mar 22 2019 Antonio Trande - 60.6.1-1
- Mozilla release 60.6.1
diff --git a/sources b/sources
index d8ad96b..1d13a07 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (icecat-60.6.1-gnu1.tar.bz2) = 7b07d752c31f28ed0f7b3d35dbc23c878fa9a8262174a5b5396e0a9eb9a64b9ba224707f1d466d484534441e5a60931825d47b501f1bcc26c8adffd1c43360cf
+SHA512 (icecat-60.6.1-gnu2.tar.bz2) = cea5f60eb1d6ca27b9482331fe57f6ea982adcc9ea0c4e2f1fc7dab902c40e2b219c9fb3fa12931c020c3496229df07b727567745b085486e663a33192928518
SHA512 (icecat-60.6.1-langpacks.tar.gz) = 1acaac68119381df7fd25189ec53786b2f962781157a9e3399bbe130cd6accb7db062345c7da2380df08a119acd22ab1a1b79eae3a7c8903a94723f34371071a
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From 7053f56d1a1307044ebb83ff16dbc8fd1f74b6d3 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Mon, 6 May 2019 12:11:18 +0200
Subject: [PATCH 023/473] Mozilla release 60.6.2 (bugfix mozb #1549061)
---
.gitignore | 1 +
icecat-lang_download.sh | 2 +-
icecat.spec | 17 +++++++++--------
sources | 2 +-
4 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/.gitignore b/.gitignore
index eed362d..6667793 100644
--- a/.gitignore
+++ b/.gitignore
@@ -70,3 +70,4 @@
/icecat-60.6.1-gnu1.tar.bz2
/icecat-60.6.1-langpacks.tar.gz
/icecat-60.6.1-gnu2.tar.bz2
+/icecat-60.6.2-gnu1.tar.bz2
diff --git a/icecat-lang_download.sh b/icecat-lang_download.sh
index 9dd3738..8f457a4 100755
--- a/icecat-lang_download.sh
+++ b/icecat-lang_download.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-VERSION=60.6.1
+VERSION=60.6.2
URL=https://ftp.mozilla.org/pub/firefox/releases/${VERSION}esr/linux-x86_64/xpi/
for u in $URL; do
diff --git a/icecat.spec b/icecat.spec
index 26292c4..751bb35 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -18,7 +18,7 @@
##Define installation directories
%global icecatappdir %{_libdir}/%{name}
%global icecat_ver %{name}-%{version}
-%global gnu_ver gnu2
+%global gnu_ver gnu1
%global icecat_devel %{name}-devel-%{version}
##Define language files directory
@@ -83,8 +83,8 @@
ExcludeArch: %{arm}
Name: icecat
-Version: 60.6.1
-Release: 2.%{gnu_ver}%{?dist}
+Version: 60.6.2
+Release: 1.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
## Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -94,14 +94,14 @@ URL: http://www.gnu.org/software/gnuzilla/
## Source archive created by scripts based on Gnuzilla files.
## Modified files are hosted in a dedicated fork repository:
## https://fedorapeople.org/cgit/sagitter/public_git/icecat.git/
-Source0: https://sagitter.fedorapeople.org/icecat/v%{version}/%{name}-%{version}-gnu2.tar.bz2
+Source0: https://sagitter.fedorapeople.org/icecat/v%{version}/%{name}-%{version}-gnu1.tar.bz2
Source2: %{name}.png
Source3: %{name}-mozconfig-common
##Language files downloaded by source7 script
%if 0%{?build_langpacks}
-Source4: %{name}-%{version}-langpacks.tar.gz
+Source4: %{name}-60.6.1-langpacks.tar.gz
%endif
##All license files
@@ -167,7 +167,7 @@ Patch417: bug1375074-save-restore-x28.patch
Patch418: mozilla-1436242.patch
Patch420: %{name}-disable-dbus-remote.patch
Patch421: %{name}-bz1445383.patch
-Patch422: %{name}-%{version}-mozilla-1533969.patch
+Patch422: %{name}-60.6.1-mozilla-1533969.patch
# Wayland specific upstream patches
Patch565: firefox-pipewire.patch
@@ -194,8 +194,6 @@ 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, autotrace
BuildRequires: java-1.8.0-openjdk-headless
@@ -754,6 +752,9 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Mon May 06 2019 Antonio Trande - 60.6.2-1
+- Mozilla release 60.6.2 (bugfix mozb #1549061)
+
* Sat Apr 06 2019 Antonio Trande - 60.6.1-2.gnu2
- Source archive rebuilt (gnu2)
- Update extensions
diff --git a/sources b/sources
index 1d13a07..ce2a089 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (icecat-60.6.1-gnu2.tar.bz2) = cea5f60eb1d6ca27b9482331fe57f6ea982adcc9ea0c4e2f1fc7dab902c40e2b219c9fb3fa12931c020c3496229df07b727567745b085486e663a33192928518
SHA512 (icecat-60.6.1-langpacks.tar.gz) = 1acaac68119381df7fd25189ec53786b2f962781157a9e3399bbe130cd6accb7db062345c7da2380df08a119acd22ab1a1b79eae3a7c8903a94723f34371071a
+SHA512 (icecat-60.6.2-gnu1.tar.bz2) = a7497ff83b77218e696095d14dce68d3f4c9661fd6540c7cda00ec3f44e119be4dfb86c7e9041f36d15eb5444c593303c5312a94c46f94f2a487ff40dd6ffe59
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From d2194b6f84b8765c3e84034e4ff5e0b1dc34de01 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Thu, 9 May 2019 19:40:04 +0200
Subject: [PATCH 024/473] Mozilla release 60.6.3 (bugfix mozb #1549249)
---
.gitignore | 2 ++
icecat-lang_download.sh | 2 +-
icecat.spec | 17 ++++++++++-------
sources | 4 ++--
4 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/.gitignore b/.gitignore
index 6667793..5aca4d1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -71,3 +71,5 @@
/icecat-60.6.1-langpacks.tar.gz
/icecat-60.6.1-gnu2.tar.bz2
/icecat-60.6.2-gnu1.tar.bz2
+/icecat-60.6.3-gnu1.tar.bz2
+/icecat-60.6.3-langpacks.tar.gz
diff --git a/icecat-lang_download.sh b/icecat-lang_download.sh
index 8f457a4..04a9585 100755
--- a/icecat-lang_download.sh
+++ b/icecat-lang_download.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-VERSION=60.6.2
+VERSION=60.6.3
URL=https://ftp.mozilla.org/pub/firefox/releases/${VERSION}esr/linux-x86_64/xpi/
for u in $URL; do
diff --git a/icecat.spec b/icecat.spec
index 751bb35..bea73c5 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -83,7 +83,7 @@
ExcludeArch: %{arm}
Name: icecat
-Version: 60.6.2
+Version: 60.6.3
Release: 1.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
@@ -101,7 +101,7 @@ Source3: %{name}-mozconfig-common
##Language files downloaded by source7 script
%if 0%{?build_langpacks}
-Source4: %{name}-60.6.1-langpacks.tar.gz
+Source4: %{name}-%{version}-langpacks.tar.gz
%endif
##All license files
@@ -277,14 +277,14 @@ Extensions included to this version of IceCat:
* 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.
+ and disable the ones more prone to break websites
* LibreJS
GNU LibreJS aims to address the JavaScript problem described in Richard
- Stallman's article The JavaScript Trap.
+ Stallman's article The JavaScript Trap
- * HTML5-video-everywhere
- Uses the native video player to play embedded videos from different sources
+ * HTTPS Everywhere
+ HTTPS Everywhere is an extension that encrypts your communications with many major websites, making your browsing more secure
* Tor™ Browser Button
Simple TOR network integration
@@ -752,7 +752,10 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
-* Mon May 06 2019 Antonio Trande - 60.6.2-1
+* Thu May 09 2019 Antonio Trande - 60.6.3-1.gnu1
+- Mozilla release 60.6.3 (bugfix mozb #1549249)
+
+* Mon May 06 2019 Antonio Trande - 60.6.2-1.gnu1
- Mozilla release 60.6.2 (bugfix mozb #1549061)
* Sat Apr 06 2019 Antonio Trande - 60.6.1-2.gnu2
diff --git a/sources b/sources
index ce2a089..5e245db 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (icecat-60.6.1-langpacks.tar.gz) = 1acaac68119381df7fd25189ec53786b2f962781157a9e3399bbe130cd6accb7db062345c7da2380df08a119acd22ab1a1b79eae3a7c8903a94723f34371071a
-SHA512 (icecat-60.6.2-gnu1.tar.bz2) = a7497ff83b77218e696095d14dce68d3f4c9661fd6540c7cda00ec3f44e119be4dfb86c7e9041f36d15eb5444c593303c5312a94c46f94f2a487ff40dd6ffe59
+SHA512 (icecat-60.6.3-gnu1.tar.bz2) = bf3172dbf8cac6c5ec399171e9e5e321c6931423d7d8352e628418d450f8694cbab5b46a129ea225646f1b63d7bd9410142040108fdfd36c89f24c0d1762517e
+SHA512 (icecat-60.6.3-langpacks.tar.gz) = 3aced9e73a1a7198c50e9ccddfdc7b72fe41ced88d0b1a62976135ebb42ad1e36f0c4470dda0b8b0bea8d94ecc25a31d93071dcc00fa896e3f09646a11ef9f9e
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From 77083c2bf61183835fc0653a742b4698497a59cf Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 11 May 2019 18:48:53 +0200
Subject: [PATCH 025/473] New source archive
---
icecat.spec | 2 +-
sources | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/icecat.spec b/icecat.spec
index bea73c5..0f305f7 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -324,7 +324,7 @@ tar -xf %{SOURCE5}
%patch2 -p0 -b .libevent_linkflag
%patch3 -p1 -b .arm
%patch7 -p0
-%patch8 -p0
+%patch8 -p0 -b .fix_installer
%patch37 -p1 -b .jit-atomic-lucky
diff --git a/sources b/sources
index 5e245db..99cd8c3 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (icecat-60.6.3-gnu1.tar.bz2) = bf3172dbf8cac6c5ec399171e9e5e321c6931423d7d8352e628418d450f8694cbab5b46a129ea225646f1b63d7bd9410142040108fdfd36c89f24c0d1762517e
+SHA512 (icecat-60.6.3-gnu1.tar.bz2) = 66bfaad3131c6c9bbbade8a52c94bc77056b8bc02b384ead49f028e85e5d5878e46ede2f9f23a700c80dfeeb5be0aa4dbdd31ee57150d2b47dbb70e655655284
SHA512 (icecat-60.6.3-langpacks.tar.gz) = 3aced9e73a1a7198c50e9ccddfdc7b72fe41ced88d0b1a62976135ebb42ad1e36f0c4470dda0b8b0bea8d94ecc25a31d93071dcc00fa896e3f09646a11ef9f9e
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From 4ea503fe7038df0a51959984aacdfeca4b4d96a3 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sun, 12 May 2019 15:54:22 +0200
Subject: [PATCH 026/473] Build release 60.6.3-gnu2
---
.gitignore | 1 +
icecat.appdata.xml | 4 ++--
icecat.spec | 11 +++++++----
sources | 2 +-
4 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/.gitignore b/.gitignore
index 5aca4d1..d18befc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -73,3 +73,4 @@
/icecat-60.6.2-gnu1.tar.bz2
/icecat-60.6.3-gnu1.tar.bz2
/icecat-60.6.3-langpacks.tar.gz
+/icecat-60.6.3-gnu2.tar.bz2
diff --git a/icecat.appdata.xml b/icecat.appdata.xml
index e30c55f..69d0ec2 100644
--- a/icecat.appdata.xml
+++ b/icecat.appdata.xml
@@ -34,8 +34,8 @@
and disable the ones more prone to break websites.
- HTML5-video-everywhere
- Uses the native video player to play embedded videos from different sources
+ HTTPS Everywhere
+ HTTPS Everywhere is an extension that encrypts your communications with many major websites, making your browsing more secure
A set of companion extensions for LibreJS by Nathan Nichols (https://addons.mozilla.org/en-US/firefox/user/NateN1222/)
diff --git a/icecat.spec b/icecat.spec
index 0f305f7..f26ae2b 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -18,7 +18,7 @@
##Define installation directories
%global icecatappdir %{_libdir}/%{name}
%global icecat_ver %{name}-%{version}
-%global gnu_ver gnu1
+%global gnu_ver gnu2
%global icecat_devel %{name}-devel-%{version}
##Define language files directory
@@ -84,7 +84,7 @@ ExcludeArch: %{arm}
Name: icecat
Version: 60.6.3
-Release: 1.%{gnu_ver}%{?dist}
+Release: 2.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
## Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -93,8 +93,8 @@ URL: http://www.gnu.org/software/gnuzilla/
## Source archive created by scripts based on Gnuzilla files.
## Modified files are hosted in a dedicated fork repository:
-## https://fedorapeople.org/cgit/sagitter/public_git/icecat.git/
-Source0: https://sagitter.fedorapeople.org/icecat/v%{version}/%{name}-%{version}-gnu1.tar.bz2
+## https://gitlab.com/anto.trande/icecat
+Source0: https://sagitter.fedorapeople.org/%{name}/v%{version}/%{name}-%{version}-%{gnu_ver}.tar.bz2
Source2: %{name}.png
Source3: %{name}-mozconfig-common
@@ -752,6 +752,9 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Sun May 12 2019 Antonio Trande - 60.6.3-1.gnu2
+- Build release 60.6.3-gnu2
+
* Thu May 09 2019 Antonio Trande - 60.6.3-1.gnu1
- Mozilla release 60.6.3 (bugfix mozb #1549249)
diff --git a/sources b/sources
index 99cd8c3..91f0349 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (icecat-60.6.3-gnu1.tar.bz2) = 66bfaad3131c6c9bbbade8a52c94bc77056b8bc02b384ead49f028e85e5d5878e46ede2f9f23a700c80dfeeb5be0aa4dbdd31ee57150d2b47dbb70e655655284
+SHA512 (icecat-60.6.3-gnu2.tar.bz2) = 5a925a1de91ec09eda9dd9c0d3825cf6f6997f3ba0c4887f464549e5cc6846d5f9ac3106141c138aa5309d4aafb2729794a668920128b6cd35297792fdc1f777
SHA512 (icecat-60.6.3-langpacks.tar.gz) = 3aced9e73a1a7198c50e9ccddfdc7b72fe41ced88d0b1a62976135ebb42ad1e36f0c4470dda0b8b0bea8d94ecc25a31d93071dcc00fa896e3f09646a11ef9f9e
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From 29641326f07474b4c86776d5a41fb7e820b62960 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sun, 12 May 2019 16:12:30 +0200
Subject: [PATCH 027/473] Fix Changelog entry
---
icecat.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/icecat.spec b/icecat.spec
index f26ae2b..9456319 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -752,7 +752,7 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
-* Sun May 12 2019 Antonio Trande - 60.6.3-1.gnu2
+* Sun May 12 2019 Antonio Trande - 60.6.3-2.gnu2
- Build release 60.6.3-gnu2
* Thu May 09 2019 Antonio Trande - 60.6.3-1.gnu1
From 1710db4a34a16bf8ad361e3e66744fcb77ad8d54 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Tue, 21 May 2019 18:06:08 +0200
Subject: [PATCH 028/473] Mozilla release 60.7.0
---
.gitignore | 2 ++
icecat-lang_download.sh | 2 +-
icecat.spec | 12 ++++++++----
sources | 4 ++--
4 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/.gitignore b/.gitignore
index d18befc..1d905dc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -74,3 +74,5 @@
/icecat-60.6.3-gnu1.tar.bz2
/icecat-60.6.3-langpacks.tar.gz
/icecat-60.6.3-gnu2.tar.bz2
+/icecat-60.7.0-gnu1.tar.bz2
+/icecat-60.7.0-langpacks.tar.gz
diff --git a/icecat-lang_download.sh b/icecat-lang_download.sh
index 04a9585..0ce70cd 100755
--- a/icecat-lang_download.sh
+++ b/icecat-lang_download.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-VERSION=60.6.3
+VERSION=60.7.0
URL=https://ftp.mozilla.org/pub/firefox/releases/${VERSION}esr/linux-x86_64/xpi/
for u in $URL; do
diff --git a/icecat.spec b/icecat.spec
index 9456319..fe2e753 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -18,7 +18,7 @@
##Define installation directories
%global icecatappdir %{_libdir}/%{name}
%global icecat_ver %{name}-%{version}
-%global gnu_ver gnu2
+%global gnu_ver gnu1
%global icecat_devel %{name}-devel-%{version}
##Define language files directory
@@ -83,8 +83,8 @@
ExcludeArch: %{arm}
Name: icecat
-Version: 60.6.3
-Release: 2.%{gnu_ver}%{?dist}
+Version: 60.7.0
+Release: 1.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
## Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -284,7 +284,8 @@ Extensions included to this version of IceCat:
Stallman's article The JavaScript Trap
* HTTPS Everywhere
- HTTPS Everywhere is an extension that encrypts your communications with many major websites, making your browsing more secure
+ HTTPS Everywhere is an extension that encrypts your communications with many major websites,
+ making your browsing more secure
* Tor™ Browser Button
Simple TOR network integration
@@ -752,6 +753,9 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Mon May 20 2019 Antonio Trande - 60.7.0-1.gnu1
+- Mozilla release 60.7.0
+
* Sun May 12 2019 Antonio Trande - 60.6.3-2.gnu2
- Build release 60.6.3-gnu2
diff --git a/sources b/sources
index 91f0349..2106d99 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (icecat-60.6.3-gnu2.tar.bz2) = 5a925a1de91ec09eda9dd9c0d3825cf6f6997f3ba0c4887f464549e5cc6846d5f9ac3106141c138aa5309d4aafb2729794a668920128b6cd35297792fdc1f777
-SHA512 (icecat-60.6.3-langpacks.tar.gz) = 3aced9e73a1a7198c50e9ccddfdc7b72fe41ced88d0b1a62976135ebb42ad1e36f0c4470dda0b8b0bea8d94ecc25a31d93071dcc00fa896e3f09646a11ef9f9e
+SHA512 (icecat-60.7.0-gnu1.tar.bz2) = 4269de3b02ed2c7a97b197e3df23499e650e7c1d7e45a5749f03a7bac00f3a80a89f90e395a81ad3d0a224500312e69dbe51922dc2f5a3e96fd13918e0f5da7e
+SHA512 (icecat-60.7.0-langpacks.tar.gz) = 8bb509ebae69eb8b97c664960e0798f322b02a9d4da747e68898ace3ae92e02d00ba928489bddf908f5df36b910e7dc4e562b80a906d013d234119f9f1b83242
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From d121f1ecfed2095b3040ffd049819d807a707742 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Tue, 28 May 2019 21:47:44 +0200
Subject: [PATCH 029/473] Build release 60.7.0-gnu2
---
.gitignore | 1 +
icecat-wayland.desktop | 4 ++--
icecat.appdata.xml | 34 ++++++++++++++++++++++------------
icecat.spec | 12 ++++++++++--
sources | 2 +-
5 files changed, 36 insertions(+), 17 deletions(-)
diff --git a/.gitignore b/.gitignore
index 1d905dc..bf4f378 100644
--- a/.gitignore
+++ b/.gitignore
@@ -76,3 +76,4 @@
/icecat-60.6.3-gnu2.tar.bz2
/icecat-60.7.0-gnu1.tar.bz2
/icecat-60.7.0-langpacks.tar.gz
+/icecat-60.7.0-gnu2.tar.bz2
diff --git a/icecat-wayland.desktop b/icecat-wayland.desktop
index 411d7da..44e6c47 100644
--- a/icecat-wayland.desktop
+++ b/icecat-wayland.desktop
@@ -1,6 +1,6 @@
[Desktop Entry]
Version=1.0
-Name=GNU IceCat\n on Wayland
+Name=GNU IceCat on Wayland
Comment=Browse the World Wide Web
GenericName=Web Browser
Keywords=Internet;WWW;Browser;Web;Explorer;
@@ -11,7 +11,7 @@ Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
Categories=Network;WebBrowser;
StartupNotify=true
-Name[en_US]=GNU IceCat\n on Wayland
+Name[en_US]=GNU IceCat on Wayland
Actions=new-window;new-private-window;
[Desktop Action new-window]
diff --git a/icecat.appdata.xml b/icecat.appdata.xml
index 69d0ec2..686c9e7 100644
--- a/icecat.appdata.xml
+++ b/icecat.appdata.xml
@@ -22,35 +22,45 @@
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.
-
-
+
+
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.
-
-
+
+
HTTPS Everywhere
HTTPS Everywhere is an extension that encrypts your communications with many major websites, making your browsing more secure
-
-
+
+
A set of companion extensions for LibreJS by Nathan Nichols (https://addons.mozilla.org/en-US/firefox/user/NateN1222/)
are pre-installed, and provide workarounds to use some services at USPS, RSF.org, SumOfUs.org, pay.gov, McDonald's, goteo.org
and Google Docs without using nonfree JavaScript.
-
-
+
+
A series of configuration changes and tweaks were applied to ensure that IceCat does not initiate network connections
that the user has not explicitly requested. This implies not downloading feeds, updates, blacklists or any other similar
data needed during startup.
-
-
+
+
Tor™ Browser Button
Simple TOR network integration (requires running TOR separately at the operating system level)
-
+
+
+ Searxes
+ Third-party Request Blocker
+
+
+ View Tube
+ Watch videos from video sharing websites with extra options
+
+
http://www.gnu.org/software/gnuzilla/
diff --git a/icecat.spec b/icecat.spec
index fe2e753..23f9123 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -18,7 +18,6 @@
##Define installation directories
%global icecatappdir %{_libdir}/%{name}
%global icecat_ver %{name}-%{version}
-%global gnu_ver gnu1
%global icecat_devel %{name}-devel-%{version}
##Define language files directory
@@ -82,9 +81,12 @@
# Exclude ARM builds for rhbz #1658940
ExcludeArch: %{arm}
+# Set new source-code build version
+%global gnu_ver gnu2
+
Name: icecat
Version: 60.7.0
-Release: 1.%{gnu_ver}%{?dist}
+Release: 2.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
## Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -294,6 +296,9 @@ Extensions included to this version of IceCat:
* Searxes
Third-party Request Blocker
+ * View Tube
+ Watch videos from video sharing websites with extra options
+
%if 0%{?wayland_backend_default}
%package x11
Summary: GNU IceCat X11 launcher
@@ -753,6 +758,9 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Tue May 28 2019 Antonio Trande - 60.7.0-2.gnu2
+- Build release 60.7.0-gnu2
+
* Mon May 20 2019 Antonio Trande - 60.7.0-1.gnu1
- Mozilla release 60.7.0
diff --git a/sources b/sources
index 2106d99..d9d2a9d 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (icecat-60.7.0-gnu1.tar.bz2) = 4269de3b02ed2c7a97b197e3df23499e650e7c1d7e45a5749f03a7bac00f3a80a89f90e395a81ad3d0a224500312e69dbe51922dc2f5a3e96fd13918e0f5da7e
+SHA512 (icecat-60.7.0-gnu2.tar.bz2) = 1c13e3715f3131fb44346cc2c0418ddeeb7ae6e9bd83d0f11ba2504e014f33aeff2484768dc508ab5e7aec18bc6025a84bde11aac12274eba559fbf9864bf478
SHA512 (icecat-60.7.0-langpacks.tar.gz) = 8bb509ebae69eb8b97c664960e0798f322b02a9d4da747e68898ace3ae92e02d00ba928489bddf908f5df36b910e7dc4e562b80a906d013d234119f9f1b83242
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From 0a24cb56658553189e5954cbea174232d16ea847 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Wed, 19 Jun 2019 15:02:08 +0200
Subject: [PATCH 030/473] Mozilla release 60.7.1
---
.gitignore | 2 ++
icecat-lang_download.sh | 2 +-
icecat.rpmlintrc | 38 --------------------------------------
icecat.spec | 14 +++++++-------
sources | 4 ++--
5 files changed, 12 insertions(+), 48 deletions(-)
delete mode 100644 icecat.rpmlintrc
diff --git a/.gitignore b/.gitignore
index bf4f378..a220e0e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -77,3 +77,5 @@
/icecat-60.7.0-gnu1.tar.bz2
/icecat-60.7.0-langpacks.tar.gz
/icecat-60.7.0-gnu2.tar.bz2
+/icecat-60.7.1-gnu1.tar.bz2
+/icecat-60.7.1-langpacks.tar.gz
diff --git a/icecat-lang_download.sh b/icecat-lang_download.sh
index 0ce70cd..08d9a1f 100755
--- a/icecat-lang_download.sh
+++ b/icecat-lang_download.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-VERSION=60.7.0
+VERSION=60.7.1
URL=https://ftp.mozilla.org/pub/firefox/releases/${VERSION}esr/linux-x86_64/xpi/
for u in $URL; do
diff --git a/icecat.rpmlintrc b/icecat.rpmlintrc
deleted file mode 100644
index 22effff..0000000
--- a/icecat.rpmlintrc
+++ /dev/null
@@ -1,38 +0,0 @@
-# Edited by sagitter (sagitter AT fedoraproject dot org)
-
-# KNOWN BUGS:
-#
-
-# TESTS:
-##### SRPMs #####
-
-# ifarch applied patches are okay
-# https://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support
-addFilter(r'(%ifarch-applied-patch) Patch*')
-
-# ERRORS:
-##### RPMs #####
-
-# chroot function (??)
-addFilter(r'(missing-call-to-chdir-with-chroot) %{_libdir}/icecat/libmozsandbox.so')
-addFilter(r'(missing-call-to-setgroups-before-setuid) %{_libdir}/icecat/libxul.so')
-
-# Expected on FF browser
-# https://support.mozilla.org/en-US/questions/1045418
-addFilter(r'(zero-length) %{_libdir}/icecat/chrome.manifest')
-addFilter(r'(zero-length) %{_libdir}/icecat/browser/chrome.manifest')
-
-# False positive
-addFilter(r'(dangling-symlink) %{_libdir}/icecat/dictionaries %{_datadir}/myspell')
-addFilter(r'(unversioned-explicit-provides) webclient')
-
-# WARNINGS:
-##### RPMs #####
-
-addFilter(r'(no-manual-page-for-binary) icecat-wayland')
-
-##### SRPMs #####
-# Different file size due to the signature of the source code tarbz archive
-addFilter(r'file-size-mismatch')
-
-addFilter(r'(invalid-url) Source*')
diff --git a/icecat.spec b/icecat.spec
index 23f9123..ccbd697 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -82,11 +82,11 @@
ExcludeArch: %{arm}
# Set new source-code build version
-%global gnu_ver gnu2
+%global gnu_ver gnu1
Name: icecat
-Version: 60.7.0
-Release: 2.%{gnu_ver}%{?dist}
+Version: 60.7.1
+Release: 1.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
## Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -117,10 +117,6 @@ Source6: %{name}.1
Source7: %{name}-lang_download.sh
-# Whitelisting errors
-# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#whitelist
-Source8: %{name}.rpmlintrc
-
# Desktop files
Source9: %{name}-wayland.desktop
Source10: %{name}.appdata.xml
@@ -758,6 +754,10 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Wed Jun 19 2019 Antonio Trande - 60.7.1-1.gnu1
+- Mozilla release 60.7.1
+- Do not list Git-tracked COPASI.rpmlintrc as source
+
* Tue May 28 2019 Antonio Trande - 60.7.0-2.gnu2
- Build release 60.7.0-gnu2
diff --git a/sources b/sources
index d9d2a9d..00f8554 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (icecat-60.7.0-gnu2.tar.bz2) = 1c13e3715f3131fb44346cc2c0418ddeeb7ae6e9bd83d0f11ba2504e014f33aeff2484768dc508ab5e7aec18bc6025a84bde11aac12274eba559fbf9864bf478
-SHA512 (icecat-60.7.0-langpacks.tar.gz) = 8bb509ebae69eb8b97c664960e0798f322b02a9d4da747e68898ace3ae92e02d00ba928489bddf908f5df36b910e7dc4e562b80a906d013d234119f9f1b83242
+SHA512 (icecat-60.7.1-gnu1.tar.bz2) = d556774544b8eae1184724a61afeb41bd063108ea37fd541dc92dc1de6b313c4904a9272c0281035f21d9ff63394653ae744282c9b6499ed5993fa9ec6469004
+SHA512 (icecat-60.7.1-langpacks.tar.gz) = 36f620450b203cca812229b9fcd5cf1676cc0a791c7ac895f7ca9027bd4170aff8a6cb5f88cc4ed0e695e1064b2cfce0013ae4ab782833859793a7b8b6e06969
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From 9e28db2e7b17f139dd9066c964c681e68523a63c Mon Sep 17 00:00:00 2001
From: sagitter
Date: Wed, 19 Jun 2019 15:05:13 +0200
Subject: [PATCH 031/473] Push icecat.rpmlintrc
---
icecat.rpmlintrc | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
create mode 100644 icecat.rpmlintrc
diff --git a/icecat.rpmlintrc b/icecat.rpmlintrc
new file mode 100644
index 0000000..c2c8f6f
--- /dev/null
+++ b/icecat.rpmlintrc
@@ -0,0 +1,40 @@
+# Whitelisting errors
+# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#whitelist
+# Edited by sagitter (sagitter AT fedoraproject dot org)
+
+# KNOWN BUGS:
+#
+
+# TESTS:
+##### SRPMs #####
+
+# ifarch applied patches are okay
+# https://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support
+addFilter(r'(%ifarch-applied-patch) Patch*')
+
+# ERRORS:
+##### RPMs #####
+
+# chroot function (??)
+addFilter(r'(missing-call-to-chdir-with-chroot) %{_libdir}/icecat/libmozsandbox.so')
+addFilter(r'(missing-call-to-setgroups-before-setuid) %{_libdir}/icecat/libxul.so')
+
+# Expected on FF browser
+# https://support.mozilla.org/en-US/questions/1045418
+addFilter(r'(zero-length) %{_libdir}/icecat/chrome.manifest')
+addFilter(r'(zero-length) %{_libdir}/icecat/browser/chrome.manifest')
+
+# False positive
+addFilter(r'(dangling-symlink) %{_libdir}/icecat/dictionaries %{_datadir}/myspell')
+addFilter(r'(unversioned-explicit-provides) webclient')
+
+# WARNINGS:
+##### RPMs #####
+
+addFilter(r'(no-manual-page-for-binary) icecat-wayland')
+
+##### SRPMs #####
+# Different file size due to the signature of the source code tarbz archive
+addFilter(r'file-size-mismatch')
+
+addFilter(r'(invalid-url) Source*')
From 6c6066e05458325e9258199fee0d3b8bec3e9087 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Thu, 20 Jun 2019 11:35:56 +0200
Subject: [PATCH 032/473] Fix Changelog
---
icecat.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/icecat.spec b/icecat.spec
index ccbd697..0a2a9f3 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -756,7 +756,7 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%changelog
* Wed Jun 19 2019 Antonio Trande - 60.7.1-1.gnu1
- Mozilla release 60.7.1
-- Do not list Git-tracked COPASI.rpmlintrc as source
+- Do not list Git-tracked icecat.rpmlintrc as source
* Tue May 28 2019 Antonio Trande - 60.7.0-2.gnu2
- Build release 60.7.0-gnu2
From 6056d3b5ec5dd548542c24cca04c5f4110514b00 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 22 Jun 2019 22:03:39 +0200
Subject: [PATCH 033/473] Mozilla release 60.7.2
---
.gitignore | 2 ++
icecat-lang_download.sh | 2 +-
icecat.rpmlintrc | 40 ----------------------------------------
icecat.spec | 5 ++++-
sources | 4 ++--
5 files changed, 9 insertions(+), 44 deletions(-)
delete mode 100644 icecat.rpmlintrc
diff --git a/.gitignore b/.gitignore
index a220e0e..f122d94 100644
--- a/.gitignore
+++ b/.gitignore
@@ -79,3 +79,5 @@
/icecat-60.7.0-gnu2.tar.bz2
/icecat-60.7.1-gnu1.tar.bz2
/icecat-60.7.1-langpacks.tar.gz
+/icecat-60.7.2-gnu1.tar.bz2
+/icecat-60.7.2-langpacks.tar.gz
diff --git a/icecat-lang_download.sh b/icecat-lang_download.sh
index 08d9a1f..c474a61 100755
--- a/icecat-lang_download.sh
+++ b/icecat-lang_download.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-VERSION=60.7.1
+VERSION=60.7.2
URL=https://ftp.mozilla.org/pub/firefox/releases/${VERSION}esr/linux-x86_64/xpi/
for u in $URL; do
diff --git a/icecat.rpmlintrc b/icecat.rpmlintrc
deleted file mode 100644
index c2c8f6f..0000000
--- a/icecat.rpmlintrc
+++ /dev/null
@@ -1,40 +0,0 @@
-# Whitelisting errors
-# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#whitelist
-# Edited by sagitter (sagitter AT fedoraproject dot org)
-
-# KNOWN BUGS:
-#
-
-# TESTS:
-##### SRPMs #####
-
-# ifarch applied patches are okay
-# https://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support
-addFilter(r'(%ifarch-applied-patch) Patch*')
-
-# ERRORS:
-##### RPMs #####
-
-# chroot function (??)
-addFilter(r'(missing-call-to-chdir-with-chroot) %{_libdir}/icecat/libmozsandbox.so')
-addFilter(r'(missing-call-to-setgroups-before-setuid) %{_libdir}/icecat/libxul.so')
-
-# Expected on FF browser
-# https://support.mozilla.org/en-US/questions/1045418
-addFilter(r'(zero-length) %{_libdir}/icecat/chrome.manifest')
-addFilter(r'(zero-length) %{_libdir}/icecat/browser/chrome.manifest')
-
-# False positive
-addFilter(r'(dangling-symlink) %{_libdir}/icecat/dictionaries %{_datadir}/myspell')
-addFilter(r'(unversioned-explicit-provides) webclient')
-
-# WARNINGS:
-##### RPMs #####
-
-addFilter(r'(no-manual-page-for-binary) icecat-wayland')
-
-##### SRPMs #####
-# Different file size due to the signature of the source code tarbz archive
-addFilter(r'file-size-mismatch')
-
-addFilter(r'(invalid-url) Source*')
diff --git a/icecat.spec b/icecat.spec
index 0a2a9f3..cb4cad6 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -85,7 +85,7 @@ ExcludeArch: %{arm}
%global gnu_ver gnu1
Name: icecat
-Version: 60.7.1
+Version: 60.7.2
Release: 1.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
@@ -754,6 +754,9 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Sat Jun 22 2019 Antonio Trande - 60.7.2-1.gnu1
+- Mozilla release 60.7.2
+
* Wed Jun 19 2019 Antonio Trande - 60.7.1-1.gnu1
- Mozilla release 60.7.1
- Do not list Git-tracked icecat.rpmlintrc as source
diff --git a/sources b/sources
index 00f8554..df5d83f 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (icecat-60.7.1-gnu1.tar.bz2) = d556774544b8eae1184724a61afeb41bd063108ea37fd541dc92dc1de6b313c4904a9272c0281035f21d9ff63394653ae744282c9b6499ed5993fa9ec6469004
-SHA512 (icecat-60.7.1-langpacks.tar.gz) = 36f620450b203cca812229b9fcd5cf1676cc0a791c7ac895f7ca9027bd4170aff8a6cb5f88cc4ed0e695e1064b2cfce0013ae4ab782833859793a7b8b6e06969
+SHA512 (icecat-60.7.2-gnu1.tar.bz2) = 230a1f3516eda6d1d63ca2cacfbea15b3e2d7e7a4a51c04af288a8204b9cc4a58f3accc06d4ab8d7e2947977955f77b2db3c7b6bdeee7ea741042bf8a32bf97a
+SHA512 (icecat-60.7.2-langpacks.tar.gz) = 69ffdfb2dd3fb82b028627404599e4e12a3ac7100941862dd2afe07755dda7d41370d50efda78e852360ea8862933aebfdde4c29907190077cf2b04ac26ea820
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From e1bbc1917f1e1028b945706a16fde6004ca82003 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 22 Jun 2019 22:33:21 +0200
Subject: [PATCH 034/473] Add rpmlintrc file
---
icecat.rpmlintrc | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
create mode 100644 icecat.rpmlintrc
diff --git a/icecat.rpmlintrc b/icecat.rpmlintrc
new file mode 100644
index 0000000..c2c8f6f
--- /dev/null
+++ b/icecat.rpmlintrc
@@ -0,0 +1,40 @@
+# Whitelisting errors
+# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#whitelist
+# Edited by sagitter (sagitter AT fedoraproject dot org)
+
+# KNOWN BUGS:
+#
+
+# TESTS:
+##### SRPMs #####
+
+# ifarch applied patches are okay
+# https://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support
+addFilter(r'(%ifarch-applied-patch) Patch*')
+
+# ERRORS:
+##### RPMs #####
+
+# chroot function (??)
+addFilter(r'(missing-call-to-chdir-with-chroot) %{_libdir}/icecat/libmozsandbox.so')
+addFilter(r'(missing-call-to-setgroups-before-setuid) %{_libdir}/icecat/libxul.so')
+
+# Expected on FF browser
+# https://support.mozilla.org/en-US/questions/1045418
+addFilter(r'(zero-length) %{_libdir}/icecat/chrome.manifest')
+addFilter(r'(zero-length) %{_libdir}/icecat/browser/chrome.manifest')
+
+# False positive
+addFilter(r'(dangling-symlink) %{_libdir}/icecat/dictionaries %{_datadir}/myspell')
+addFilter(r'(unversioned-explicit-provides) webclient')
+
+# WARNINGS:
+##### RPMs #####
+
+addFilter(r'(no-manual-page-for-binary) icecat-wayland')
+
+##### SRPMs #####
+# Different file size due to the signature of the source code tarbz archive
+addFilter(r'file-size-mismatch')
+
+addFilter(r'(invalid-url) Source*')
From a832830f5293e2b75cdee763702e1798588132fb Mon Sep 17 00:00:00 2001
From: sagitter
Date: Wed, 10 Jul 2019 13:04:01 +0200
Subject: [PATCH 035/473] Mozilla release 60.8.0
---
.gitignore | 2 ++
icecat-lang_download.sh | 2 +-
icecat.spec | 8 +++++++-
mozilla-1512162.patch | 26 ++++++++++++++++++++++++++
sources | 4 ++--
5 files changed, 38 insertions(+), 4 deletions(-)
create mode 100644 mozilla-1512162.patch
diff --git a/.gitignore b/.gitignore
index f122d94..0e7fd6c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -81,3 +81,5 @@
/icecat-60.7.1-langpacks.tar.gz
/icecat-60.7.2-gnu1.tar.bz2
/icecat-60.7.2-langpacks.tar.gz
+/icecat-60.8.0-gnu1.tar.bz2
+/icecat-60.8.0-langpacks.tar.gz
diff --git a/icecat-lang_download.sh b/icecat-lang_download.sh
index c474a61..832a09b 100755
--- a/icecat-lang_download.sh
+++ b/icecat-lang_download.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-VERSION=60.7.2
+VERSION=60.8.0
URL=https://ftp.mozilla.org/pub/firefox/releases/${VERSION}esr/linux-x86_64/xpi/
for u in $URL; do
diff --git a/icecat.spec b/icecat.spec
index cb4cad6..8f137fa 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -85,7 +85,7 @@ ExcludeArch: %{arm}
%global gnu_ver gnu1
Name: icecat
-Version: 60.7.2
+Version: 60.8.0
Release: 1.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
@@ -166,6 +166,8 @@ Patch418: mozilla-1436242.patch
Patch420: %{name}-disable-dbus-remote.patch
Patch421: %{name}-bz1445383.patch
Patch422: %{name}-60.6.1-mozilla-1533969.patch
+# Fix crash on ppc64le (mozilla#1512162)
+Patch423: mozilla-1512162.patch
# Wayland specific upstream patches
Patch565: firefox-pipewire.patch
@@ -361,6 +363,7 @@ tar -xf %{SOURCE5}
%if 0%{?fedora} > 30
%patch422 -p1 -b .%{name}-%{version}-mozilla-1533969
%endif
+%patch423 -p1 -b .mozilla-1512162.patch
# Wayland specific upstream patches
dos2unix %{PATCH565}
@@ -754,6 +757,9 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Tue Jul 09 2019 Antonio Trande - 60.8.0-1.gnu1
+- Mozilla release 60.8.0
+
* Sat Jun 22 2019 Antonio Trande - 60.7.2-1.gnu1
- Mozilla release 60.7.2
diff --git a/mozilla-1512162.patch b/mozilla-1512162.patch
new file mode 100644
index 0000000..85e4abe
--- /dev/null
+++ b/mozilla-1512162.patch
@@ -0,0 +1,26 @@
+diff --git a/js/xpconnect/src/XPCWrappedNative.cpp b/js/xpconnect/src/XPCWrappedNative.cpp
+--- a/js/xpconnect/src/XPCWrappedNative.cpp
++++ b/js/xpconnect/src/XPCWrappedNative.cpp
+@@ -1145,6 +1145,10 @@
+ return CallMethodHelper(ccx).Call();
+ }
+
++#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
++// Work around a compiler bug on ppc64le (bug 1512162).
++__attribute__ ((noinline,noclone))
++#endif
+ bool CallMethodHelper::Call() {
+ mCallContext.SetRetVal(JS::UndefinedValue());
+
+@@ -1315,6 +1319,10 @@
+ return true;
+ }
+
++#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
++// Work around a compiler bug on ppc64le (bug 1512162).
++__attribute__ ((noinline,noclone))
++#endif
+ bool CallMethodHelper::GatherAndConvertResults() {
+ // now we iterate through the native params to gather and convert results
+ uint8_t paramCount = mMethodInfo->GetParamCount();
+
diff --git a/sources b/sources
index df5d83f..e5e5f07 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (icecat-60.7.2-gnu1.tar.bz2) = 230a1f3516eda6d1d63ca2cacfbea15b3e2d7e7a4a51c04af288a8204b9cc4a58f3accc06d4ab8d7e2947977955f77b2db3c7b6bdeee7ea741042bf8a32bf97a
-SHA512 (icecat-60.7.2-langpacks.tar.gz) = 69ffdfb2dd3fb82b028627404599e4e12a3ac7100941862dd2afe07755dda7d41370d50efda78e852360ea8862933aebfdde4c29907190077cf2b04ac26ea820
+SHA512 (icecat-60.8.0-gnu1.tar.bz2) = 31900c921102ccaa736b8be20210d16b7bae9c797d2529e9f38e803d834c72bacfe6e586934e21c48ca7097cc0bbc56adccc6beefc5f42b1e7ee4a3d93e9f223
+SHA512 (icecat-60.8.0-langpacks.tar.gz) = 82f63a5c0e7b4af8ed616d94f99274c4a54fa092147bcce3eb4f77026b562a8109cc289fec18abdf0e350484a8645eb32f173fbbe3e20cb12f8fb79cea52554b
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From 56b1192bbe40956f34b656f836aeade51829e7cc Mon Sep 17 00:00:00 2001
From: sagitter
Date: Wed, 10 Jul 2019 21:50:39 +0200
Subject: [PATCH 036/473] Use mozilla-1512162.patch on Fedora 30+ only (GCC-9)
---
icecat.spec | 7 ++++++-
mozilla-1512162.patch | 3 +--
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/icecat.spec b/icecat.spec
index 8f137fa..45ab644 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -86,7 +86,7 @@ ExcludeArch: %{arm}
Name: icecat
Version: 60.8.0
-Release: 1.%{gnu_ver}%{?dist}
+Release: 2.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
## Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -363,7 +363,9 @@ tar -xf %{SOURCE5}
%if 0%{?fedora} > 30
%patch422 -p1 -b .%{name}-%{version}-mozilla-1533969
%endif
+%if 0%{?fedora} > 29
%patch423 -p1 -b .mozilla-1512162.patch
+%endif
# Wayland specific upstream patches
dos2unix %{PATCH565}
@@ -757,6 +759,9 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Wed Jul 10 2019 Antonio Trande - 60.8.0-2.gnu1
+- Use mozilla-1512162.patch on Fedora 30+ only (GCC-9)
+
* Tue Jul 09 2019 Antonio Trande - 60.8.0-1.gnu1
- Mozilla release 60.8.0
diff --git a/mozilla-1512162.patch b/mozilla-1512162.patch
index 85e4abe..a324372 100644
--- a/mozilla-1512162.patch
+++ b/mozilla-1512162.patch
@@ -12,7 +12,7 @@ diff --git a/js/xpconnect/src/XPCWrappedNative.cpp b/js/xpconnect/src/XPCWrapped
bool CallMethodHelper::Call() {
mCallContext.SetRetVal(JS::UndefinedValue());
-@@ -1315,6 +1319,10 @@
+@@ -1318,6 +1322,10 @@
return true;
}
@@ -23,4 +23,3 @@ diff --git a/js/xpconnect/src/XPCWrappedNative.cpp b/js/xpconnect/src/XPCWrapped
bool CallMethodHelper::GatherAndConvertResults() {
// now we iterate through the native params to gather and convert results
uint8_t paramCount = mMethodInfo->GetParamCount();
-
From 7af2f47be204c2d07e50e6389f890e9ec20a9349 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Thu, 11 Jul 2019 21:39:21 +0200
Subject: [PATCH 037/473] Enable webrtc on %%{ix86} x86_64 only| Remove
filtering of private libraries
---
icecat.spec | 24 ++++++++----------------
1 file changed, 8 insertions(+), 16 deletions(-)
diff --git a/icecat.spec b/icecat.spec
index 45ab644..0ad3784 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -1,15 +1,3 @@
-# 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 1
@@ -86,7 +74,7 @@ ExcludeArch: %{arm}
Name: icecat
Version: 60.8.0
-Release: 2.%{gnu_ver}%{?dist}
+Release: 3.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
## Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -378,10 +366,10 @@ cp -p %{SOURCE3} .mozconfig
echo "ac_add_options --enable-default-toolkit=cairo-gtk3-wayland" >> .mozconfig
echo "ac_add_options --enable-official-branding" >> .mozconfig
-%ifarch %{ix86} x86_64
-echo "ac_add_options --enable-webrtc" >> .mozconfig
-%else
+%ifnarch %{ix86} x86_64
echo "ac_add_options --disable-webrtc" >> .mozconfig
+%else
+echo "ac_add_options --enable-webrtc" >> .mozconfig
%endif
%if %{with pulseaudio}
@@ -759,6 +747,10 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Thu Jul 11 2019 Antonio Trande - 60.8.0-3.gnu1
+- Remove filtering of private libraries
+- Enable webrtc on %%{ix86} x86_64 only
+
* Wed Jul 10 2019 Antonio Trande - 60.8.0-2.gnu1
- Use mozilla-1512162.patch on Fedora 30+ only (GCC-9)
From 53ba7d160f12e79e6f0f24111bfcd28c211140ec Mon Sep 17 00:00:00 2001
From: sagitter
Date: Fri, 12 Jul 2019 18:54:55 +0200
Subject: [PATCH 038/473] Remove redundant Python2 dependencies
---
icecat.spec | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/icecat.spec b/icecat.spec
index 0ad3784..dae34ef 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -74,7 +74,7 @@ ExcludeArch: %{arm}
Name: icecat
Version: 60.8.0
-Release: 3.%{gnu_ver}%{?dist}
+Release: 4.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
## Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -218,8 +218,6 @@ BuildRequires: openjpeg-devel
BuildRequires: pango-devel
BuildRequires: pipewire-devel
BuildRequires: python2-devel
-BuildRequires: python2-setuptools
-BuildRequires: python2-virtualenv
BuildRequires: pkgconfig(gconf-2.0)
BuildRequires: pkgconfig(xrender)
BuildRequires: pkgconfig(libstartup-notification-1.0)
@@ -747,6 +745,9 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Fri Jul 12 2019 Antonio Trande - 60.8.0-4.gnu1
+- Remove redundant Python2 dependencies
+
* Thu Jul 11 2019 Antonio Trande - 60.8.0-3.gnu1
- Remove filtering of private libraries
- Enable webrtc on %%{ix86} x86_64 only
From 0807c29735dc39025e7c7805fb81d5908c43e459 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Tue, 23 Jul 2019 10:26:04 +0200
Subject: [PATCH 039/473] Enable WebRTC on ppc64le
---
icecat.spec | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/icecat.spec b/icecat.spec
index dae34ef..d082ede 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -74,7 +74,7 @@ ExcludeArch: %{arm}
Name: icecat
Version: 60.8.0
-Release: 4.%{gnu_ver}%{?dist}
+Release: 5.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
## Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -364,7 +364,7 @@ cp -p %{SOURCE3} .mozconfig
echo "ac_add_options --enable-default-toolkit=cairo-gtk3-wayland" >> .mozconfig
echo "ac_add_options --enable-official-branding" >> .mozconfig
-%ifnarch %{ix86} x86_64
+%ifnarch %{ix86} x86_64 ppc64le
echo "ac_add_options --disable-webrtc" >> .mozconfig
%else
echo "ac_add_options --enable-webrtc" >> .mozconfig
@@ -745,6 +745,9 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Tue Jul 23 2019 Antonio Trande - 60.8.0-5.gnu1
+- Enable WebRTC on ppc64le
+
* Fri Jul 12 2019 Antonio Trande - 60.8.0-4.gnu1
- Remove redundant Python2 dependencies
From 5a3172c7bb2151edf0a8ccbdcc975be0db86cb99 Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Thu, 25 Jul 2019 09:19:01 +0000
Subject: [PATCH 040/473] - Rebuilt for
https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering
---
icecat.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/icecat.spec b/icecat.spec
index d082ede..8ef2ac9 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -74,7 +74,7 @@ ExcludeArch: %{arm}
Name: icecat
Version: 60.8.0
-Release: 5.%{gnu_ver}%{?dist}
+Release: 6.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
## Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -745,6 +745,9 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Thu Jul 25 2019 Fedora Release Engineering - 60.8.0-6.gnu1
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
* Tue Jul 23 2019 Antonio Trande - 60.8.0-5.gnu1
- Enable WebRTC on ppc64le
From aadd0f7984d281bd38f0acab97dde18772444dd9 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sun, 28 Jul 2019 12:55:24 +0200
Subject: [PATCH 041/473] Add patch to fix the addon installation
---
icecat-fix_addon_installation.patch | 36 +++++++++++++++++++++++++++++
icecat.spec | 11 +++++++--
2 files changed, 45 insertions(+), 2 deletions(-)
create mode 100644 icecat-fix_addon_installation.patch
diff --git a/icecat-fix_addon_installation.patch b/icecat-fix_addon_installation.patch
new file mode 100644
index 0000000..fd83f72
--- /dev/null
+++ b/icecat-fix_addon_installation.patch
@@ -0,0 +1,36 @@
+# Fixes installation of those addons which don't have ID on IceCat ("Cannot find id for addon" error).
+--- a/toolkit/mozapps/extensions/internal/XPIInstall.jsm
++++ b/toolkit/mozapps/extensions/internal/XPIInstall.jsm
+@@ -885,8 +885,30 @@
+ throw new Error(`Webextension is signed with an invalid id (${addon.id})`);
+ }
+ }
+- if (!addon.id && aInstallLocation.name == KEY_APP_TEMPORARY) {
+- addon.id = generateTemporaryInstallID(aZipReader.file);
++ if (!addon.id) {
++ if (aInstallLocation.name == KEY_APP_TEMPORARY) {
++ addon.id = generateTemporaryInstallID(aZipReader.file);
++ } else {
++ try {
++ let sigInput = aZipReader.getInputStream("META-INF/cose.sig");
++ let sigBinary = Cc['@mozilla.org/binaryinputstream;1']
++ .createInstance(Ci.nsIBinaryInputStream);
++ sigBinary.setInputStream(sigInput);
++ var sig = ''
++ var sigCount;
++ while ((sigCount = sigBinary.available()) > 0) {
++ sig += sigBinary.readBytes(sigCount);
++ }
++ let sigMatch = sig.match(/\{\w{8}-\w{4}-\w{4}-\w{4}-\w{12}\}/g)
++ if (sigMatch && sigMatch.length == 1) {
++ addon.id = sigMatch[0]
++ } else {
++ logger.warn("Failed to find addon id");
++ }
++ } catch (e) {
++ logger.warn("Failed to process META-INF/cose.sig");
++ }
++ }
+ }
+ }
+ addon.updateBlocklistState();
diff --git a/icecat.spec b/icecat.spec
index 8ef2ac9..532c4dd 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -116,7 +116,10 @@ Source15: %{name}-x11.sh.in
Source16: %{name}-x11.desktop
# Build patches
-Patch2: %{name}-libevent_linkflag.patch
+# Fixes installation of those addons which don't have ID on IceCat ("Cannot find id for addon" error).
+Patch1: %{name}-fix_addon_installation.patch
+
+Patch2: %{name}-libevent_linkflag.patch
Patch3: mozilla-build-arm.patch
# Unrecognized file?
@@ -311,6 +314,7 @@ find . -type f -name "*.c" -exec chmod 0644 '{}' \;
##Copy license files
tar -xf %{SOURCE5}
+%patch1 -p1 -b .fix_addon_installation
%patch2 -p0 -b .libevent_linkflag
%patch3 -p1 -b .arm
%patch7 -p0
@@ -631,7 +635,7 @@ echo "%%lang($language_short) %{langpackdir}/langpack-$language_short@icecat.moz
}
# Table of fallbacks for each language
-create_default_langpack "bn-IN" "bn"
+#create_default_langpack "bn-IN" "bn"
create_default_langpack "es-AR" "es"
create_default_langpack "fy-NL" "fy"
create_default_langpack "ga-IE" "ga"
@@ -745,6 +749,9 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Sun Jul 28 2019 Antonio Trande - 60.8.0-6.gnu1
+- Add patch to fix the addon installation
+
* Thu Jul 25 2019 Fedora Release Engineering - 60.8.0-6.gnu1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
From 664509a3dee237ab707f7d61f77229fc1d9070b5 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Fri, 16 Aug 2019 22:12:46 +0200
Subject: [PATCH 042/473] Mozilla release 68.0.2
---
.gitignore | 3 +
bug1375074-save-restore-x28.patch | 50 +-
build-jit-atomic-always-lucky.patch | 12 +-
build-rust-ppc64le.patch | 25 +
firefox-pipewire.patch | 2550 +--------------------------
icecat-60.6.1-mozilla-1533969.patch | 32 -
icecat-bz1445383.patch | 131 --
icecat-disable-dbus-remote.patch | 12 -
icecat-fix_addon_installation.patch | 10 +-
icecat-fix_jar.patch | 12 +-
icecat-lang_download.sh | 2 +-
icecat-mozconfig-common | 3 -
icecat.rpmlintrc | 40 -
icecat.spec | 179 +-
mozilla-1005640-accept-lang.patch | 30 -
mozilla-1353817.patch | 27 -
mozilla-1424422.patch | 188 --
mozilla-1436242.patch | 56 -
mozilla-1512162.patch | 30 +-
mozilla-1566876-webrtc-ind.patch | 36 +
mozilla-1568569.patch | 73 +
mozilla-256180.patch | 11 -
node-stdout-nonblocking-wrapper | 2 +
rhbz-1354671.patch | 8 +-
sources | 5 +-
25 files changed, 346 insertions(+), 3181 deletions(-)
create mode 100644 build-rust-ppc64le.patch
delete mode 100644 icecat-60.6.1-mozilla-1533969.patch
delete mode 100644 icecat-bz1445383.patch
delete mode 100644 icecat-disable-dbus-remote.patch
delete mode 100644 icecat.rpmlintrc
delete mode 100644 mozilla-1005640-accept-lang.patch
delete mode 100644 mozilla-1353817.patch
delete mode 100644 mozilla-1424422.patch
delete mode 100644 mozilla-1436242.patch
create mode 100644 mozilla-1566876-webrtc-ind.patch
create mode 100644 mozilla-1568569.patch
delete mode 100644 mozilla-256180.patch
create mode 100755 node-stdout-nonblocking-wrapper
diff --git a/.gitignore b/.gitignore
index 0e7fd6c..1039629 100644
--- a/.gitignore
+++ b/.gitignore
@@ -83,3 +83,6 @@
/icecat-60.7.2-langpacks.tar.gz
/icecat-60.8.0-gnu1.tar.bz2
/icecat-60.8.0-langpacks.tar.gz
+/cbindgen-vendor.tar.xz
+/icecat-68.0.2-gnu1.tar.bz2
+/icecat-68.0.2-langpacks.tar.gz
diff --git a/bug1375074-save-restore-x28.patch b/bug1375074-save-restore-x28.patch
index b622604..4db683b 100644
--- a/bug1375074-save-restore-x28.patch
+++ b/bug1375074-save-restore-x28.patch
@@ -32,44 +32,44 @@ new file mode 100644
diff --git a/js/src/vm/UnboxedObject.cpp b/js/src/vm/UnboxedObject.cpp
--- a/js/src/vm/UnboxedObject.cpp
+++ b/js/src/vm/UnboxedObject.cpp
-@@ -86,8 +86,15 @@
+@@ -95,7 +95,15 @@ UnboxedLayout::makeConstructorCode(JSCon
#endif
#ifdef JS_CODEGEN_ARM64
-- // ARM64 communicates stack address via sp, but uses a pseudo-sp for
-- // addressing.
-+ // ARM64 communicates stack address via sp, but uses a pseudo-sp (PSP) for
-+ // addressing. The register we use for PSP may however also be used by
-+ // calling code, and it is nonvolatile, so save it. Do this as a special
-+ // case first because the generic save/restore code needs the PSP to be
-+ // initialized already.
-+ MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
-+ masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
+- // ARM64 communicates stack address via sp, but uses a pseudo-sp for addressing.
++ // ARM64 communicates stack address via sp, but uses a pseudo-sp (PSP) for
++ // addressing. The register we use for PSP may however also be used by
++ // calling code, and it is nonvolatile, so save it. Do this as a special
++ // case first because the generic save/restore code needs the PSP to be
++ // initialized already.
++ MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
++ masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
+
+ // Initialize the PSP from the SP.
- masm.initStackPtr();
+ masm.initStackPtr();
#endif
-@@ -239,7 +246,22 @@
- if (ScratchDoubleReg.volatile_()) masm.pop(ScratchDoubleReg);
- masm.PopRegsInMask(savedNonVolatileRegisters);
+@@ -233,7 +241,22 @@ UnboxedLayout::makeConstructorCode(JSCon
+ masm.pop(ScratchDoubleReg);
+ masm.PopRegsInMask(savedNonVolatileRegisters);
+#ifdef JS_CODEGEN_ARM64
-+ // Now restore the value that was in the PSP register on entry, and return.
++ // Now restore the value that was in the PSP register on entry, and return.
+
-+ // Obtain the correct SP from the PSP.
-+ masm.Mov(sp, PseudoStackPointer64);
++ // Obtain the correct SP from the PSP.
++ masm.Mov(sp, PseudoStackPointer64);
+
-+ // Restore the saved value of the PSP register, this value is whatever the
-+ // caller had saved in it, not any actual SP value, and it must not be
-+ // overwritten subsequently.
-+ masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
++ // Restore the saved value of the PSP register, this value is whatever the
++ // caller had saved in it, not any actual SP value, and it must not be
++ // overwritten subsequently.
++ masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
+
-+ // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
-+ masm.Ret(vixl::lr);
++ // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
++ masm.Ret(vixl::lr);
+#else
- masm.abiret();
+ masm.abiret();
+#endif
- masm.bind(&failureStoreOther);
+ masm.bind(&failureStoreOther);
+
diff --git a/build-jit-atomic-always-lucky.patch b/build-jit-atomic-always-lucky.patch
index 50d1c9d..d693d0c 100644
--- a/build-jit-atomic-always-lucky.patch
+++ b/build-jit-atomic-always-lucky.patch
@@ -1,11 +1,11 @@
-diff -up firefox-57.0b5/js/src/jit/AtomicOperations.h.jit-atomic-lucky firefox-57.0b5/js/src/jit/AtomicOperations.h
---- firefox-57.0b5/js/src/jit/AtomicOperations.h.jit-atomic-lucky 2017-10-06 12:34:02.338973607 +0200
-+++ firefox-57.0b5/js/src/jit/AtomicOperations.h 2017-10-06 12:38:24.632622215 +0200
+diff -up firefox-68.0.2/js/src/jit/AtomicOperations.h.jit-atomic-lucky firefox-60.5.0/js/src/jit/AtomicOperations.h
+--- firefox-68.0.2/js/src/jit/AtomicOperations.h.jit-atomic-lucky 2019-01-22 10:20:27.993697161 +0100
++++ firefox-68.0.2/js/src/jit/AtomicOperations.h 2019-01-22 10:23:15.337873762 +0100
@@ -394,7 +394,7 @@
- #elif defined(__s390__) || defined(__s390x__)
- #include "jit/none/AtomicOperations-feeling-lucky.h"
+ defined(__sh__) || defined(__s390__) || defined(__s390x__)
+ # include "jit/shared/AtomicOperations-feeling-lucky.h"
#else
--#error "No AtomicOperations support provided for this platform"
+-# error "No AtomicOperations support provided for this platform"
+#include "jit/none/AtomicOperations-feeling-lucky.h"
#endif
diff --git a/build-rust-ppc64le.patch b/build-rust-ppc64le.patch
new file mode 100644
index 0000000..2474c35
--- /dev/null
+++ b/build-rust-ppc64le.patch
@@ -0,0 +1,25 @@
+diff -up firefox-55.0/build/moz.configure/rust.configure.rust-ppc64le firefox-55.0/build/moz.configure/rust.configure
+--- firefox-55.0/build/moz.configure/rust.configure.rust-ppc64le 2017-07-31 18:20:49.000000000 +0200
++++ firefox-55.0/build/moz.configure/rust.configure 2017-08-02 10:19:03.254220003 +0200
+@@ -151,6 +151,9 @@ def rust_triple_alias(host_or_target):
+ ('sparc64', 'Linux'): 'sparc64-unknown-linux-gnu',
+ ('x86', 'Linux'): 'i686-unknown-linux-gnu',
+ ('x86_64', 'Linux'): 'x86_64-unknown-linux-gnu',
++ ('ppc64le', 'Linux'): 'powerpc64le-unknown-linux-gnu',
++ ('ppc64', 'Linux'): 'powerpc64-unknown-linux-gnu',
++ ('s390x', 'Linux'): 's390x-unknown-linux-gnu',
+ # OS X
+ ('x86', 'OSX'): 'i686-apple-darwin',
+ ('x86_64', 'OSX'): 'x86_64-apple-darwin',
+@@ -174,8 +177,10 @@ def rust_triple_alias(host_or_target):
+ ('sparc64', 'SunOS'): 'sparcv9-sun-solaris',
+ }.get((host_or_target.cpu, os_or_kernel), None)
+
++ if (rustc_target == 'powerpc64-unknown-linux-gnu' and host_or_target.endianness == 'little'):
++ rustc_target = 'powerpc64le-unknown-linux-gnu'
+ if rustc_target is None:
+- die("Don't know how to translate {} for rustc".format(host_or_target.alias))
++ die("Don't know how to translate {} for rustc, cpu: {}, os: {}".format(target.alias, target.cpu, os_or_kernel))
+
+ # Check to see whether our rustc has a reasonably functional stdlib
+ # for our chosen target.
diff --git a/firefox-pipewire.patch b/firefox-pipewire.patch
index 0ed09c6..7233a73 100644
--- a/firefox-pipewire.patch
+++ b/firefox-pipewire.patch
@@ -1,7 +1,7 @@
-diff -ENwbur firefox-64.0/config/system-headers.mozbuild firefox-webrtc/config/system-headers.mozbuild
---- firefox-64.0/config/system-headers.mozbuild 2019-01-07 13:18:29.367461827 +0100
-+++ firefox-webrtc/config/system-headers.mozbuild 2019-01-07 13:19:30.043067979 +0100
-@@ -314,6 +314,7 @@
+diff -up firefox-68.0/config/system-headers.mozbuild.firefox-pipewire firefox-68.0/config/system-headers.mozbuild
+--- firefox-68.0/config/system-headers.mozbuild.firefox-pipewire 2019-07-01 22:30:26.000000000 +0200
++++ firefox-68.0/config/system-headers.mozbuild 2019-07-08 15:26:15.397161627 +0200
+@@ -314,6 +314,7 @@ system_headers = [
'Gestalt.h',
'getopt.h',
'gio/gio.h',
@@ -9,7 +9,7 @@ diff -ENwbur firefox-64.0/config/system-headers.mozbuild firefox-webrtc/config/s
'glibconfig.h',
'glib.h',
'glib-object.h',
-@@ -607,6 +608,7 @@
+@@ -607,6 +608,7 @@ system_headers = [
'Pgenerr.h',
'PGenErr.h',
'Ph.h',
@@ -17,1398 +17,11 @@ diff -ENwbur firefox-64.0/config/system-headers.mozbuild firefox-webrtc/config/s
'pixman.h',
'pk11func.h',
'pk11pqg.h',
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/app_capturer_linux.cc firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/app_capturer_linux.cc
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/app_capturer_linux.cc 1970-01-01 01:00:00.000000000 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/app_capturer_linux.cc 2019-01-07 13:20:40.141768272 +0100
-@@ -0,0 +1,39 @@
-+/*
-+ * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
-+ *
-+ * Use of this source code is governed by a BSD-style license
-+ * that can be found in the LICENSE file in the root of the source
-+ * tree. An additional intellectual property rights grant can be found
-+ * in the file PATENTS. All contributing project authors may
-+ * be found in the AUTHORS file in the root of the source tree.
-+ */
-+
-+#include "webrtc/modules/desktop_capture/desktop_capture_options.h"
-+#include "webrtc/modules/desktop_capture/desktop_capturer.h"
-+
-+#if defined(USE_X11)
-+#include "webrtc/modules/desktop_capture/app_capturer_x11.h"
-+#endif // defined(USE_X11)
-+
-+namespace webrtc {
-+
-+// static
-+AppCapturer* AppCapturer::Create(const DesktopCaptureOptions& options) {
-+#if defined(USE_X11)
-+ return AppCapturerX11::Create(options);
-+#endif // defined(USE_X11)
-+
-+ return nullptr;
-+}
-+
-+// static
-+std::unique_ptr DesktopCapturer::CreateRawAppCapturer(
-+ const DesktopCaptureOptions& options) {
-+#if defined(USE_X11)
-+ return AppCapturerX11::CreateRawAppCapturer(options);
-+#endif // defined(USE_X11)
-+
-+ return nullptr;
-+}
-+
-+} // namespace webrtc
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/app_capturer_x11.cc firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/app_capturer_x11.cc
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/app_capturer_x11.cc 2019-01-07 13:16:46.374432920 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/app_capturer_x11.cc 2019-01-07 13:20:40.142768282 +0100
-@@ -7,9 +7,6 @@
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
--#include "webrtc/modules/desktop_capture/app_capturer.h"
--#include "webrtc/modules/desktop_capture/shared_desktop_frame.h"
--#include "webrtc/modules/desktop_capture/x11/shared_x_util.h"
-
- #include
- #include
-@@ -21,80 +18,19 @@
-
- #include
-
-+#include "webrtc/modules/desktop_capture/app_capturer_x11.h"
-+
- #include "webrtc/modules/desktop_capture/desktop_capture_options.h"
- #include "webrtc/modules/desktop_capture/desktop_frame.h"
- #include "webrtc/modules/desktop_capture/x11/shared_x_display.h"
-+#include "webrtc/modules/desktop_capture/x11/shared_x_util.h"
- #include "webrtc/modules/desktop_capture/x11/x_error_trap.h"
- #include "webrtc/modules/desktop_capture/x11/x_server_pixel_buffer.h"
- #include "webrtc/system_wrappers/include/logging.h"
-
- namespace webrtc {
-
--namespace {
--
--class ScreenCapturerProxy : DesktopCapturer::Callback {
--public:
-- ScreenCapturerProxy()
-- : screen_capturer_(DesktopCapturer::CreateScreenCapturer(DesktopCaptureOptions::CreateDefault())) {
-- screen_capturer_->SelectSource(kFullDesktopScreenId);
-- screen_capturer_->Start(this);
-- }
-- void CaptureFrame() { screen_capturer_->CaptureFrame(); }
-- std::unique_ptr GetFrame() { return std::move(frame_); }
--
-- // Callback interface
-- virtual void OnCaptureResult(DesktopCapturer::Result result,
-- std::unique_ptr frame) {
-- frame_ = std::move(frame);
-- }
--
--protected:
-- std::unique_ptr screen_capturer_;
-- std::unique_ptr frame_;
--};
--
--class AppCapturerLinux : public AppCapturer {
--public:
-- AppCapturerLinux(const DesktopCaptureOptions& options);
-- virtual ~AppCapturerLinux();
--
-- // AppCapturer interface.
-- virtual bool GetAppList(AppList* apps) override;
-- virtual bool SelectApp(ProcessId processId) override;
-- virtual bool BringAppToFront() override;
--
-- // DesktopCapturer interface.
-- virtual void Start(Callback* callback) override;
-- virtual void Stop() override;
-- virtual void CaptureFrame() override;
-- virtual bool SelectSource(SourceId id) override
-- {
-- return SelectApp(static_cast(id));
-- }
--
--protected:
-- Display* GetDisplay() { return x_display_->display(); }
-- bool UpdateRegions();
--
-- void FillDesktopFrameRegionWithColor(DesktopFrame* pDesktopFrame,Region rgn, uint32_t color);
--private:
-- Callback* callback_;
-- ProcessId selected_process_;
--
-- // Sample Mode
-- ScreenCapturerProxy screen_capturer_proxy_;
-- // Mask of foreground (non-app windows in front of selected)
-- Region rgn_mask_;
-- // Region of selected windows
-- Region rgn_visual_;
-- // Mask of background (desktop, non-app windows behind selected)
-- Region rgn_background_;
--
-- rtc::scoped_refptr x_display_;
-- RTC_DISALLOW_COPY_AND_ASSIGN(AppCapturerLinux);
--};
--
--AppCapturerLinux::AppCapturerLinux(const DesktopCaptureOptions& options)
-+AppCapturerX11::AppCapturerX11(const DesktopCaptureOptions& options)
- : callback_(NULL),
- selected_process_(0),
- x_display_(options.x_display()) {
-@@ -103,7 +39,7 @@
- rgn_background_ = XCreateRegion();
- }
-
--AppCapturerLinux::~AppCapturerLinux() {
-+AppCapturerX11::~AppCapturerX11() {
- if (rgn_mask_) {
- XDestroyRegion(rgn_mask_);
- }
-@@ -116,32 +52,32 @@
- }
-
- // AppCapturer interface.
--bool AppCapturerLinux::GetAppList(AppList* apps) {
-+bool AppCapturerX11::GetAppList(AppList* apps) {
- // Implemented in DesktopDeviceInfo
- return true;
- }
--bool AppCapturerLinux::SelectApp(ProcessId processId) {
-+bool AppCapturerX11::SelectApp(ProcessId processId) {
- selected_process_ = processId;
- return true;
- }
--bool AppCapturerLinux::BringAppToFront() {
-+bool AppCapturerX11::BringAppToFront() {
- // Not implemented yet: See Bug 1036653
- return true;
- }
-
- // DesktopCapturer interface.
--void AppCapturerLinux::Start(Callback* callback) {
-+void AppCapturerX11::Start(Callback* callback) {
- assert(!callback_);
- assert(callback);
-
- callback_ = callback;
- }
-
--void AppCapturerLinux::Stop() {
-+void AppCapturerX11::Stop() {
- callback_ = NULL;
- }
-
--void AppCapturerLinux::CaptureFrame() {
-+void AppCapturerX11::CaptureFrame() {
- XErrorTrap error_trap(GetDisplay());
-
- //Capture screen >> set root window as capture window
-@@ -169,7 +105,7 @@
- }
- }
-
--void AppCapturerLinux::FillDesktopFrameRegionWithColor(DesktopFrame* pDesktopFrame, Region rgn, uint32_t color) {
-+void AppCapturerX11::FillDesktopFrameRegionWithColor(DesktopFrame* pDesktopFrame, Region rgn, uint32_t color) {
- XErrorTrap error_trap(GetDisplay());
-
- if (!pDesktopFrame) {
-@@ -192,7 +128,7 @@
- }
- }
-
--bool AppCapturerLinux::UpdateRegions() {
-+bool AppCapturerX11::UpdateRegions() {
- XErrorTrap error_trap(GetDisplay());
-
- XSubtractRegion(rgn_visual_, rgn_visual_, rgn_visual_);
-@@ -269,21 +205,19 @@
- return true;
- }
-
--} // namespace
--
- // static
--AppCapturer* AppCapturer::Create(const DesktopCaptureOptions& options) {
-- return new AppCapturerLinux(options);
-+AppCapturer* AppCapturerX11::Create(const DesktopCaptureOptions& options) {
-+ return new AppCapturerX11(options);
- }
-
- // static
--std::unique_ptr DesktopCapturer::CreateRawAppCapturer(
-+std::unique_ptr AppCapturerX11::CreateRawAppCapturer(
- const DesktopCaptureOptions& options) {
-
- if (!options.x_display())
- return nullptr;
-
-- std::unique_ptr capturer(new AppCapturerLinux(options));
-+ std::unique_ptr capturer(new AppCapturerX11(options));
-
- return std::unique_ptr(std::move(capturer));
- }
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/app_capturer_x11.h firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/app_capturer_x11.h
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/app_capturer_x11.h 1970-01-01 01:00:00.000000000 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/app_capturer_x11.h 2019-01-07 13:20:40.203768892 +0100
-@@ -0,0 +1,98 @@
-+/*
-+ * Copyright 2018 The WebRTC project authors. All Rights Reserved.
-+ *
-+ * Use of this source code is governed by a BSD-style license
-+ * that can be found in the LICENSE file in the root of the source
-+ * tree. An additional intellectual property rights grant can be found
-+ * in the file PATENTS. All contributing project authors may
-+ * be found in the AUTHORS file in the root of the source tree.
-+ */
-+
-+#ifndef MODULES_DESKTOP_CAPTURE_APP_CAPTURER_X11_H_
-+#define MODULES_DESKTOP_CAPTURE_APP_CAPTURER_X11_H_
-+
-+#include
-+#include
-+#include
-+#include
-+
-+#include "webrtc/modules/desktop_capture/app_capturer.h"
-+#include "webrtc/modules/desktop_capture/shared_desktop_frame.h"
-+#include "webrtc/modules/desktop_capture/desktop_capture_options.h"
-+#include "webrtc/modules/desktop_capture/desktop_capturer.h"
-+#include "webrtc/modules/desktop_capture/desktop_geometry.h"
-+#include "webrtc/modules/desktop_capture/x11/shared_x_display.h"
-+#include "webrtc/modules/desktop_capture/x11/x_server_pixel_buffer.h"
-+#include "webrtc/base/constructormagic.h"
-+#include "webrtc/base/scoped_ref_ptr.h"
-+
-+namespace webrtc {
-+
-+class ScreenCapturerProxy : DesktopCapturer::Callback {
-+public:
-+ ScreenCapturerProxy()
-+ : screen_capturer_(DesktopCapturer::CreateScreenCapturer(DesktopCaptureOptions::CreateDefault())) {
-+ screen_capturer_->SelectSource(kFullDesktopScreenId);
-+ screen_capturer_->Start(this);
-+ }
-+ void CaptureFrame() { screen_capturer_->CaptureFrame(); }
-+ std::unique_ptr GetFrame() { return std::move(frame_); }
-+
-+ // Callback interface
-+ virtual void OnCaptureResult(DesktopCapturer::Result result,
-+ std::unique_ptr frame) {
-+ frame_ = std::move(frame);
-+ }
-+
-+protected:
-+ std::unique_ptr screen_capturer_;
-+ std::unique_ptr frame_;
-+};
-+
-+class AppCapturerX11 : public AppCapturer {
-+public:
-+ AppCapturerX11(const DesktopCaptureOptions& options);
-+ virtual ~AppCapturerX11();
-+
-+ static AppCapturer* Create(const DesktopCaptureOptions& options);
-+ static std::unique_ptr CreateRawAppCapturer(const DesktopCaptureOptions& options);
-+
-+ // AppCapturer interface.
-+ virtual bool GetAppList(AppList* apps) override;
-+ virtual bool SelectApp(ProcessId processId) override;
-+ virtual bool BringAppToFront() override;
-+
-+ // DesktopCapturer interface.
-+ virtual void Start(Callback* callback) override;
-+ virtual void Stop() override;
-+ virtual void CaptureFrame() override;
-+ virtual bool SelectSource(SourceId id) override
-+ {
-+ return SelectApp(static_cast(id));
-+ }
-+
-+protected:
-+ Display* GetDisplay() { return x_display_->display(); }
-+ bool UpdateRegions();
-+
-+ void FillDesktopFrameRegionWithColor(DesktopFrame* pDesktopFrame,Region rgn, uint32_t color);
-+private:
-+ Callback* callback_;
-+ ProcessId selected_process_;
-+
-+ // Sample Mode
-+ ScreenCapturerProxy screen_capturer_proxy_;
-+ // Mask of foreground (non-app windows in front of selected)
-+ Region rgn_mask_;
-+ // Region of selected windows
-+ Region rgn_visual_;
-+ // Mask of background (desktop, non-app windows behind selected)
-+ Region rgn_background_;
-+
-+ rtc::scoped_refptr x_display_;
-+ RTC_DISALLOW_COPY_AND_ASSIGN(AppCapturerX11);
-+};
-+
-+} // namespace webrtc
-+
-+#endif // MODULES_DESKTOP_CAPTURE_APP_CAPTURER_X11_H_
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/base_capturer_pipewire.cc firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/base_capturer_pipewire.cc
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/base_capturer_pipewire.cc 1970-01-01 01:00:00.000000000 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/base_capturer_pipewire.cc 2019-01-07 13:20:40.143768292 +0100
-@@ -0,0 +1,849 @@
-+/*
-+ * Copyright 2018 The WebRTC project authors. All Rights Reserved.
-+ *
-+ * Use of this source code is governed by a BSD-style license
-+ * that can be found in the LICENSE file in the root of the source
-+ * tree. An additional intellectual property rights grant can be found
-+ * in the file PATENTS. All contributing project authors may
-+ * be found in the AUTHORS file in the root of the source tree.
-+ */
-+
-+#include
-+#include
-+#include
-+
-+#include
-+#include
-+#include
-+#include
-+
-+#include "webrtc/modules/desktop_capture/base_capturer_pipewire.h"
-+
-+#include "webrtc/modules/desktop_capture/desktop_capture_options.h"
-+#include "webrtc/modules/desktop_capture/desktop_capturer.h"
-+#include "webrtc/base/checks.h"
-+#include "webrtc/base/logging.h"
-+
-+namespace webrtc {
-+
-+const char kDesktopBusName[] = "org.freedesktop.portal.Desktop";
-+const char kDesktopObjectPath[] = "/org/freedesktop/portal/desktop";
-+const char kDesktopRequestObjectPath[] =
-+ "/org/freedesktop/portal/desktop/request";
-+const char kSessionInterfaceName[] = "org.freedesktop.portal.Session";
-+const char kRequestInterfaceName[] = "org.freedesktop.portal.Request";
-+const char kScreenCastInterfaceName[] = "org.freedesktop.portal.ScreenCast";
-+
-+const int kBytesPerPixelPw = 4;
-+
-+// static
-+void BaseCapturerPipeWire::OnStateChanged(void* data,
-+ pw_remote_state old_state,
-+ pw_remote_state state,
-+ const char* error_message) {
-+ BaseCapturerPipeWire* that = static_cast(data);
-+ RTC_DCHECK(that);
-+
-+ switch (state) {
-+ case PW_REMOTE_STATE_ERROR:
-+ LOG(LS_ERROR) << "PipeWire remote state error: " << error_message;
-+ break;
-+ case PW_REMOTE_STATE_CONNECTED:
-+ LOG(LS_INFO) << "PipeWire remote state: connected.";
-+ that->CreateReceivingStream();
-+ break;
-+ case PW_REMOTE_STATE_CONNECTING:
-+ LOG(LS_INFO) << "PipeWire remote state: connecting.";
-+ break;
-+ case PW_REMOTE_STATE_UNCONNECTED:
-+ LOG(LS_INFO) << "PipeWire remote state: unconnected.";
-+ break;
-+ }
-+}
-+
-+// static
-+void BaseCapturerPipeWire::OnStreamStateChanged(void* data,
-+ pw_stream_state old_state,
-+ pw_stream_state state,
-+ const char* error_message) {
-+ BaseCapturerPipeWire* that = static_cast(data);
-+ RTC_DCHECK(that);
-+
-+ switch (state) {
-+ case PW_STREAM_STATE_ERROR:
-+ LOG(LS_ERROR) << "PipeWire stream state error: " << error_message;
-+ break;
-+ case PW_STREAM_STATE_CONFIGURE:
-+ pw_stream_set_active(that->pw_stream_, true);
-+ break;
-+ case PW_STREAM_STATE_UNCONNECTED:
-+ case PW_STREAM_STATE_CONNECTING:
-+ case PW_STREAM_STATE_READY:
-+ case PW_STREAM_STATE_PAUSED:
-+ case PW_STREAM_STATE_STREAMING:
-+ break;
-+ }
-+}
-+
-+// static
-+void BaseCapturerPipeWire::OnStreamFormatChanged(
-+ void* data,
-+ const struct spa_pod* format) {
-+ BaseCapturerPipeWire* that = static_cast(data);
-+ RTC_DCHECK(that);
-+
-+ LOG(LS_INFO) << "PipeWire stream format changed.";
-+
-+ if (!format) {
-+ pw_stream_finish_format(that->pw_stream_, /*res=*/0, /*params=*/nullptr,
-+ /*n_params=*/0);
-+ return;
-+ }
-+
-+ that->spa_video_format_ = new spa_video_info_raw();
-+ spa_format_video_raw_parse(format, that->spa_video_format_,
-+ &that->pw_type_->format_video);
-+
-+ auto width = that->spa_video_format_->size.width;
-+ auto height = that->spa_video_format_->size.height;
-+ auto stride = SPA_ROUND_UP_N(width * kBytesPerPixelPw, 4);
-+ auto size = height * stride;
-+
-+ uint8_t buffer[1024] = {};
-+ auto builder = spa_pod_builder{buffer, sizeof(buffer)};
-+
-+ // Setup buffers and meta header for new format.
-+ const struct spa_pod* params[2];
-+ params[0] = reinterpret_cast(spa_pod_builder_object(
-+ &builder,
-+ // id to enumerate buffer requirements
-+ that->pw_core_type_->param.idBuffers,
-+ that->pw_core_type_->param_buffers.Buffers,
-+ // Size: specified as integer (i) and set to specified size
-+ ":", that->pw_core_type_->param_buffers.size, "i", size,
-+ // Stride: specified as integer (i) and set to specified stride
-+ ":", that->pw_core_type_->param_buffers.stride, "i", stride,
-+ // Buffers: specifies how many buffers we want to deal with, set as
-+ // integer (i) where preferred number is 8, then allowed number is defined
-+ // as range (r) from min and max values and it is undecided (u) to allow
-+ // negotiation
-+ ":", that->pw_core_type_->param_buffers.buffers, "iru", 8,
-+ SPA_POD_PROP_MIN_MAX(1, 32),
-+ // Align: memory alignment of the buffer, set as integer (i) to specified
-+ // value
-+ ":", that->pw_core_type_->param_buffers.align, "i", 16));
-+ params[1] = reinterpret_cast(spa_pod_builder_object(
-+ &builder,
-+ // id to enumerate supported metadata
-+ that->pw_core_type_->param.idMeta, that->pw_core_type_->param_meta.Meta,
-+ // Type: specified as id or enum (I)
-+ ":", that->pw_core_type_->param_meta.type, "I",
-+ that->pw_core_type_->meta.Header,
-+ // Size: size of the metadata, specified as integer (i)
-+ ":", that->pw_core_type_->param_meta.size, "i",
-+ sizeof(struct spa_meta_header)));
-+
-+ pw_stream_finish_format(that->pw_stream_, /*res=*/0, params, /*n_params=*/2);
-+}
-+
-+// static
-+void BaseCapturerPipeWire::OnStreamProcess(void* data) {
-+ BaseCapturerPipeWire* that = static_cast(data);
-+ RTC_DCHECK(that);
-+
-+ pw_buffer* buf = nullptr;
-+
-+ if (!(buf = pw_stream_dequeue_buffer(that->pw_stream_))) {
-+ return;
-+ }
-+
-+ that->HandleBuffer(buf);
-+
-+ pw_stream_queue_buffer(that->pw_stream_, buf);
-+}
-+
-+BaseCapturerPipeWire::BaseCapturerPipeWire(CaptureSourceType source_type)
-+ : capture_source_type_(source_type) {}
-+
-+BaseCapturerPipeWire::~BaseCapturerPipeWire() {
-+ if (pw_main_loop_) {
-+ pw_thread_loop_stop(pw_main_loop_);
-+ }
-+
-+ if (pw_type_) {
-+ delete pw_type_;
-+ }
-+
-+ if (spa_video_format_) {
-+ delete spa_video_format_;
-+ }
-+
-+ if (pw_stream_) {
-+ pw_stream_destroy(pw_stream_);
-+ }
-+
-+ if (pw_remote_) {
-+ pw_remote_destroy(pw_remote_);
-+ }
-+
-+ if (pw_core_) {
-+ pw_core_destroy(pw_core_);
-+ }
-+
-+ if (pw_main_loop_) {
-+ pw_thread_loop_destroy(pw_main_loop_);
-+ }
-+
-+ if (pw_loop_) {
-+ pw_loop_destroy(pw_loop_);
-+ }
-+
-+ if (current_frame_) {
-+ free(current_frame_);
-+ }
-+
-+ if (start_request_signal_id_) {
-+ g_dbus_connection_signal_unsubscribe(connection_, start_request_signal_id_);
-+ }
-+ if (sources_request_signal_id_) {
-+ g_dbus_connection_signal_unsubscribe(connection_,
-+ sources_request_signal_id_);
-+ }
-+ if (session_request_signal_id_) {
-+ g_dbus_connection_signal_unsubscribe(connection_,
-+ session_request_signal_id_);
-+ }
-+
-+ if (session_handle_) {
-+ GDBusMessage* message = g_dbus_message_new_method_call(
-+ kDesktopBusName, session_handle_, kSessionInterfaceName, "Close");
-+ if (message) {
-+ GError* error = nullptr;
-+ g_dbus_connection_send_message(connection_, message,
-+ G_DBUS_SEND_MESSAGE_FLAGS_NONE,
-+ /*out_serial=*/nullptr, &error);
-+ if (error) {
-+ LOG(LS_ERROR) << "Failed to close the session: " << error->message;
-+ g_error_free(error);
-+ }
-+ g_object_unref(message);
-+ }
-+ }
-+
-+ g_free(start_handle_);
-+ g_free(sources_handle_);
-+ g_free(session_handle_);
-+ g_free(portal_handle_);
-+
-+ if (proxy_) {
-+ g_clear_object(&proxy_);
-+ }
-+}
-+
-+void BaseCapturerPipeWire::InitPortals() {
-+ g_dbus_proxy_new_for_bus(
-+ G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, /*info=*/nullptr,
-+ kDesktopBusName, kDesktopObjectPath, kScreenCastInterfaceName,
-+ /*cancellable=*/nullptr,
-+ reinterpret_cast(OnProxyRequested), this);
-+}
-+
-+void BaseCapturerPipeWire::InitPipeWire() {
-+ pw_init(/*argc=*/nullptr, /*argc=*/nullptr);
-+
-+ pw_loop_ = pw_loop_new(/*properties=*/nullptr);
-+ pw_main_loop_ = pw_thread_loop_new(pw_loop_, "pipewire-main-loop");
-+
-+ pw_core_ = pw_core_new(pw_loop_, /*properties=*/nullptr);
-+ pw_core_type_ = pw_core_get_type(pw_core_);
-+ pw_remote_ = pw_remote_new(pw_core_, nullptr, /*user_data_size=*/0);
-+
-+ InitPipeWireTypes();
-+
-+ // Initialize event handlers, remote end and stream-related.
-+ pw_remote_events_.version = PW_VERSION_REMOTE_EVENTS;
-+ pw_remote_events_.state_changed = &OnStateChanged;
-+
-+ pw_stream_events_.version = PW_VERSION_STREAM_EVENTS;
-+ pw_stream_events_.state_changed = &OnStreamStateChanged;
-+ pw_stream_events_.format_changed = &OnStreamFormatChanged;
-+ pw_stream_events_.process = &OnStreamProcess;
-+
-+ pw_remote_add_listener(pw_remote_, &spa_remote_listener_, &pw_remote_events_,
-+ this);
-+ pw_remote_connect_fd(pw_remote_, pw_fd_);
-+
-+ if (pw_thread_loop_start(pw_main_loop_) < 0) {
-+ LOG(LS_ERROR) << "Failed to start main PipeWire loop";
-+ portal_init_failed_ = true;
-+ }
-+}
-+
-+void BaseCapturerPipeWire::InitPipeWireTypes() {
-+ spa_type_map* map = pw_core_type_->map;
-+ pw_type_ = new PipeWireType();
-+
-+ spa_type_media_type_map(map, &pw_type_->media_type);
-+ spa_type_media_subtype_map(map, &pw_type_->media_subtype);
-+ spa_type_format_video_map(map, &pw_type_->format_video);
-+ spa_type_video_format_map(map, &pw_type_->video_format);
-+}
-+
-+void BaseCapturerPipeWire::CreateReceivingStream() {
-+ spa_rectangle pwMinScreenBounds = spa_rectangle{1, 1};
-+ spa_rectangle pwScreenBounds =
-+ spa_rectangle{static_cast(desktop_size_.width()),
-+ static_cast(desktop_size_.height())};
-+
-+ spa_fraction pwFrameRateMin = spa_fraction{0, 1};
-+ spa_fraction pwFrameRateMax = spa_fraction{60, 1};
-+
-+ pw_properties* reuseProps = pw_properties_new("pipewire.client.reuse", "1",
-+ /*end of varargs*/ nullptr);
-+ pw_stream_ = pw_stream_new(pw_remote_, "webrtc-consume-stream", reuseProps);
-+
-+ uint8_t buffer[1024] = {};
-+ const spa_pod* params[1];
-+ spa_pod_builder builder = spa_pod_builder{buffer, sizeof(buffer)};
-+ params[0] = reinterpret_cast(spa_pod_builder_object(
-+ &builder,
-+ // id to enumerate formats
-+ pw_core_type_->param.idEnumFormat, pw_core_type_->spa_format, "I",
-+ pw_type_->media_type.video, "I", pw_type_->media_subtype.raw,
-+ // Video format: specified as id or enum (I), preferred format is BGRx,
-+ // then allowed formats are enumerated (e) and the format is undecided (u)
-+ // to allow negotiation
-+ ":", pw_type_->format_video.format, "Ieu", pw_type_->video_format.BGRx,
-+ SPA_POD_PROP_ENUM(2, pw_type_->video_format.RGBx,
-+ pw_type_->video_format.BGRx),
-+ // Video size: specified as rectangle (R), preferred size is specified as
-+ // first parameter, then allowed size is defined as range (r) from min and
-+ // max values and the format is undecided (u) to allow negotiation
-+ ":", pw_type_->format_video.size, "Rru", &pwScreenBounds, 2,
-+ &pwMinScreenBounds, &pwScreenBounds,
-+ // Frame rate: specified as fraction (F) and set to minimum frame rate
-+ // value
-+ ":", pw_type_->format_video.framerate, "F", &pwFrameRateMin,
-+ // Max frame rate: specified as fraction (F), preferred frame rate is set
-+ // to maximum value, then allowed frame rate is defined as range (r) from
-+ // min and max values and it is undecided (u) to allow negotiation
-+ ":", pw_type_->format_video.max_framerate, "Fru", &pwFrameRateMax, 2,
-+ &pwFrameRateMin, &pwFrameRateMax));
-+
-+ pw_stream_add_listener(pw_stream_, &spa_stream_listener_, &pw_stream_events_,
-+ this);
-+ pw_stream_flags flags = static_cast(
-+ PW_STREAM_FLAG_AUTOCONNECT | PW_STREAM_FLAG_INACTIVE |
-+ PW_STREAM_FLAG_MAP_BUFFERS);
-+ if (pw_stream_connect(pw_stream_, PW_DIRECTION_INPUT, /*port_path=*/nullptr,
-+ flags, params,
-+ /*n_params=*/1) != 0) {
-+ LOG(LS_ERROR) << "Could not connect receiving stream.";
-+ portal_init_failed_ = true;
-+ return;
-+ }
-+}
-+
-+void BaseCapturerPipeWire::HandleBuffer(pw_buffer* buffer) {
-+ spa_buffer* spaBuffer = buffer->buffer;
-+ void* src = nullptr;
-+
-+ if (!(src = spaBuffer->datas[0].data)) {
-+ return;
-+ }
-+
-+ uint32_t maxSize = spaBuffer->datas[0].maxsize;
-+ int32_t srcStride = spaBuffer->datas[0].chunk->stride;
-+ if (srcStride != (desktop_size_.width() * kBytesPerPixelPw)) {
-+ LOG(LS_ERROR) << "Got buffer with stride different from screen stride: "
-+ << srcStride
-+ << " != " << (desktop_size_.width() * kBytesPerPixelPw);
-+ portal_init_failed_ = true;
-+ return;
-+ }
-+
-+ if (!current_frame_) {
-+ current_frame_ = static_cast(malloc(maxSize));
-+ }
-+ RTC_DCHECK(current_frame_ != nullptr);
-+
-+ // If both sides decided to go with the RGBx format we need to convert it to
-+ // BGRx to match color format expected by WebRTC.
-+ if (spa_video_format_->format == pw_type_->video_format.RGBx) {
-+ uint8_t* tempFrame = static_cast(malloc(maxSize));
-+ std::memcpy(tempFrame, src, maxSize);
-+ ConvertRGBxToBGRx(tempFrame, maxSize);
-+ std::memcpy(current_frame_, tempFrame, maxSize);
-+ free(tempFrame);
-+ } else {
-+ std::memcpy(current_frame_, src, maxSize);
-+ }
-+}
-+
-+void BaseCapturerPipeWire::ConvertRGBxToBGRx(uint8_t* frame, uint32_t size) {
-+ // Change color format for KDE KWin which uses RGBx and not BGRx
-+ for (uint32_t i = 0; i < size; i += 4) {
-+ uint8_t tempR = frame[i];
-+ uint8_t tempB = frame[i + 2];
-+ frame[i] = tempB;
-+ frame[i + 2] = tempR;
-+ }
-+}
-+
-+guint BaseCapturerPipeWire::SetupRequestResponseSignal(
-+ const gchar* object_path,
-+ GDBusSignalCallback callback) {
-+ return g_dbus_connection_signal_subscribe(
-+ connection_, kDesktopBusName, kRequestInterfaceName, "Response",
-+ object_path, /*arg0=*/nullptr, G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE,
-+ callback, this, /*user_data_free_func=*/nullptr);
-+}
-+
-+// static
-+void BaseCapturerPipeWire::OnProxyRequested(GObject* /*object*/,
-+ GAsyncResult* result,
-+ gpointer user_data) {
-+ BaseCapturerPipeWire* that =
-+ static_cast(user_data);
-+ RTC_DCHECK(that);
-+
-+ GError* error = nullptr;
-+ that->proxy_ = g_dbus_proxy_new_finish(result, &error);
-+ if (!that->proxy_) {
-+ LOG(LS_ERROR) << "Failed to create a proxy for the screen cast portal: "
-+ << error->message;
-+ g_error_free(error);
-+ that->portal_init_failed_ = true;
-+ return;
-+ }
-+ that->connection_ = g_dbus_proxy_get_connection(that->proxy_);
-+
-+ LOG(LS_INFO) << "Created proxy for the screen cast portal.";
-+ that->SessionRequest();
-+}
-+
-+// static
-+gchar* BaseCapturerPipeWire::PrepareSignalHandle(GDBusConnection* connection,
-+ const gchar* token) {
-+ gchar* sender = g_strdup(g_dbus_connection_get_unique_name(connection) + 1);
-+ for (int i = 0; sender[i]; i++) {
-+ if (sender[i] == '.') {
-+ sender[i] = '_';
-+ }
-+ }
-+
-+ gchar* handle = g_strconcat(kDesktopRequestObjectPath, "/", sender, "/",
-+ token, /*end of varargs*/ nullptr);
-+ g_free(sender);
-+
-+ return handle;
-+}
-+
-+void BaseCapturerPipeWire::SessionRequest() {
-+ GVariantBuilder builder;
-+ gchar* variant_string;
-+
-+ g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT);
-+ variant_string =
-+ g_strdup_printf("webrtc_session%d", g_random_int_range(0, G_MAXINT));
-+ g_variant_builder_add(&builder, "{sv}", "session_handle_token",
-+ g_variant_new_string(variant_string));
-+ g_free(variant_string);
-+ variant_string = g_strdup_printf("webrtc%d", g_random_int_range(0, G_MAXINT));
-+ g_variant_builder_add(&builder, "{sv}", "handle_token",
-+ g_variant_new_string(variant_string));
-+
-+ portal_handle_ = PrepareSignalHandle(connection_, variant_string);
-+ session_request_signal_id_ = SetupRequestResponseSignal(
-+ portal_handle_, OnSessionRequestResponseSignal);
-+ g_free(variant_string);
-+
-+ LOG(LS_INFO) << "Screen cast session requested.";
-+ g_dbus_proxy_call(
-+ proxy_, "CreateSession", g_variant_new("(a{sv})", &builder),
-+ G_DBUS_CALL_FLAGS_NONE, /*timeout=*/-1, /*cancellable=*/nullptr,
-+ reinterpret_cast(OnSessionRequested), this);
-+}
-+
-+// static
-+void BaseCapturerPipeWire::OnSessionRequested(GDBusConnection* connection,
-+ GAsyncResult* result,
-+ gpointer user_data) {
-+ BaseCapturerPipeWire* that =
-+ static_cast(user_data);
-+ RTC_DCHECK(that);
-+
-+ GError* error = nullptr;
-+ GVariant* variant = g_dbus_proxy_call_finish(that->proxy_, result, &error);
-+ if (!variant) {
-+ LOG(LS_ERROR) << "Failed to create a screen cast session: "
-+ << error->message;
-+ g_error_free(error);
-+ that->portal_init_failed_ = true;
-+ return;
-+ }
-+ LOG(LS_INFO) << "Initializing the screen cast session.";
-+
-+ gchar* handle = nullptr;
-+ g_variant_get_child(variant, 0, "o", &handle);
-+ g_variant_unref(variant);
-+ if (!handle) {
-+ LOG(LS_ERROR) << "Failed to initialize the screen cast session.";
-+ if (that->session_request_signal_id_) {
-+ g_dbus_connection_signal_unsubscribe(connection,
-+ that->session_request_signal_id_);
-+ that->session_request_signal_id_ = 0;
-+ }
-+ that->portal_init_failed_ = true;
-+ return;
-+ }
-+
-+ g_free(handle);
-+
-+ LOG(LS_INFO) << "Subscribing to the screen cast session.";
-+}
-+
-+// static
-+void BaseCapturerPipeWire::OnSessionRequestResponseSignal(
-+ GDBusConnection* connection,
-+ const gchar* sender_name,
-+ const gchar* object_path,
-+ const gchar* interface_name,
-+ const gchar* signal_name,
-+ GVariant* parameters,
-+ gpointer user_data) {
-+ BaseCapturerPipeWire* that =
-+ static_cast(user_data);
-+ RTC_DCHECK(that);
-+
-+
-+ LOG(LS_INFO)
-+ << "Received response for the screen cast session subscription.";
-+
-+ guint32 portal_response;
-+ GVariant* response_data;
-+ g_variant_get(parameters, "(u@a{sv})", &portal_response, &response_data);
-+ g_variant_lookup(response_data, "session_handle", "s",
-+ &that->session_handle_);
-+ g_variant_unref(response_data);
-+
-+ if (!that->session_handle_ || portal_response) {
-+ LOG(LS_ERROR)
-+ << "Failed to request the screen cast session subscription.";
-+ that->portal_init_failed_ = true;
-+ return;
-+ }
-+
-+ that->SourcesRequest();
-+}
-+
-+void BaseCapturerPipeWire::SourcesRequest() {
-+ GVariantBuilder builder;
-+ gchar* variant_string;
-+
-+ g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT);
-+ // We want to record monitor content.
-+ g_variant_builder_add(&builder, "{sv}", "types",
-+ g_variant_new_uint32(capture_source_type_));
-+ // We don't want to allow selection of multiple sources.
-+ g_variant_builder_add(&builder, "{sv}", "multiple",
-+ g_variant_new_boolean(false));
-+ variant_string = g_strdup_printf("webrtc%d", g_random_int_range(0, G_MAXINT));
-+ g_variant_builder_add(&builder, "{sv}", "handle_token",
-+ g_variant_new_string(variant_string));
-+
-+ sources_handle_ = PrepareSignalHandle(connection_, variant_string);
-+ sources_request_signal_id_ = SetupRequestResponseSignal(
-+ sources_handle_, OnSourcesRequestResponseSignal);
-+ g_free(variant_string);
-+
-+ LOG(LS_INFO) << "Requesting sources from the screen cast session.";
-+ g_dbus_proxy_call(
-+ proxy_, "SelectSources",
-+ g_variant_new("(oa{sv})", session_handle_, &builder),
-+ G_DBUS_CALL_FLAGS_NONE, /*timeout=*/-1, /*cancellable=*/nullptr,
-+ reinterpret_cast(OnSourcesRequested), this);
-+}
-+
-+// static
-+void BaseCapturerPipeWire::OnSourcesRequested(GDBusConnection* connection,
-+ GAsyncResult* result,
-+ gpointer user_data) {
-+ BaseCapturerPipeWire* that =
-+ static_cast(user_data);
-+ RTC_DCHECK(that);
-+
-+ GError* error = nullptr;
-+ GVariant* variant = g_dbus_proxy_call_finish(that->proxy_, result, &error);
-+ if (!variant) {
-+ LOG(LS_ERROR) << "Failed to request the sources: " << error->message;
-+ g_error_free(error);
-+ that->portal_init_failed_ = true;
-+ return;
-+ }
-+
-+ LOG(LS_INFO) << "Sources requested from the screen cast session.";
-+
-+ gchar* handle = nullptr;
-+ g_variant_get_child(variant, 0, "o", &handle);
-+ g_variant_unref(variant);
-+ if (!handle) {
-+ LOG(LS_ERROR) << "Failed to initialize the screen cast session.";
-+ if (that->sources_request_signal_id_) {
-+ g_dbus_connection_signal_unsubscribe(connection,
-+ that->sources_request_signal_id_);
-+ that->sources_request_signal_id_ = 0;
-+ }
-+ that->portal_init_failed_ = true;
-+ return;
-+ }
-+
-+ g_free(handle);
-+
-+ LOG(LS_INFO) << "Subscribed to sources signal.";
-+}
-+
-+// static
-+void BaseCapturerPipeWire::OnSourcesRequestResponseSignal(
-+ GDBusConnection* connection,
-+ const gchar* sender_name,
-+ const gchar* object_path,
-+ const gchar* interface_name,
-+ const gchar* signal_name,
-+ GVariant* parameters,
-+ gpointer user_data) {
-+ BaseCapturerPipeWire* that =
-+ static_cast(user_data);
-+ RTC_DCHECK(that);
-+
-+ guint32 portal_response;
-+ g_variant_get(parameters, "(u@a{sv})", &portal_response, nullptr);
-+ if (portal_response) {
-+ LOG(LS_ERROR)
-+ << "Failed to select sources for the screen cast session.";
-+ that->portal_init_failed_ = true;
-+ return;
-+ }
-+
-+ LOG(LS_INFO) << "Received sources signal from session.";
-+ that->StartRequest();
-+}
-+
-+void BaseCapturerPipeWire::StartRequest() {
-+ GVariantBuilder builder;
-+ gchar* variant_string;
-+
-+ g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT);
-+ variant_string = g_strdup_printf("webrtc%d", g_random_int_range(0, G_MAXINT));
-+ g_variant_builder_add(&builder, "{sv}", "handle_token",
-+ g_variant_new_string(variant_string));
-+
-+ start_handle_ = PrepareSignalHandle(connection_, variant_string);
-+ start_request_signal_id_ =
-+ SetupRequestResponseSignal(start_handle_, OnStartRequestResponseSignal);
-+ g_free(variant_string);
-+
-+ // "Identifier for the application window", this is Wayland, so not "x11:...".
-+ const gchar parent_window[] = "";
-+
-+ LOG(LS_INFO) << "Starting the screen cast session.";
-+ g_dbus_proxy_call(
-+ proxy_, "Start",
-+ g_variant_new("(osa{sv})", session_handle_, parent_window, &builder),
-+ G_DBUS_CALL_FLAGS_NONE, /*timeout=*/-1, /*cancellable=*/nullptr,
-+ reinterpret_cast(OnStartRequested), this);
-+}
-+
-+// static
-+void BaseCapturerPipeWire::OnStartRequested(GDBusConnection* connection,
-+ GAsyncResult* result,
-+ gpointer user_data) {
-+ BaseCapturerPipeWire* that =
-+ static_cast(user_data);
-+ RTC_DCHECK(that);
-+
-+ GError* error = nullptr;
-+ GVariant* variant = g_dbus_proxy_call_finish(that->proxy_, result, &error);
-+ if (!variant) {
-+ LOG(LS_ERROR) << "Failed to start the screen cast session: "
-+ << error->message;
-+ g_error_free(error);
-+ that->portal_init_failed_ = true;
-+ return;
-+ }
-+
-+ LOG(LS_INFO) << "Initializing the start of the screen cast session.";
-+
-+ gchar* handle = nullptr;
-+ g_variant_get_child(variant, 0, "o", &handle);
-+ g_variant_unref(variant);
-+ if (!handle) {
-+ LOG(LS_ERROR)
-+ << "Failed to initialize the start of the screen cast session.";
-+ if (that->start_request_signal_id_) {
-+ g_dbus_connection_signal_unsubscribe(connection,
-+ that->start_request_signal_id_);
-+ that->start_request_signal_id_ = 0;
-+ }
-+ that->portal_init_failed_ = true;
-+ return;
-+ }
-+
-+ g_free(handle);
-+
-+ LOG(LS_INFO) << "Subscribed to the start signal.";
-+}
-+
-+// static
-+void BaseCapturerPipeWire::OnStartRequestResponseSignal(
-+ GDBusConnection* connection,
-+ const gchar* sender_name,
-+ const gchar* object_path,
-+ const gchar* interface_name,
-+ const gchar* signal_name,
-+ GVariant* parameters,
-+ gpointer user_data) {
-+ BaseCapturerPipeWire* that =
-+ static_cast(user_data);
-+ RTC_DCHECK(that);
-+
-+ LOG(LS_INFO) << "Start signal received.";
-+ guint32 portal_response;
-+ GVariant* response_data;
-+ GVariantIter* iter = nullptr;
-+ g_variant_get(parameters, "(u@a{sv})", &portal_response, &response_data);
-+ if (portal_response || !response_data) {
-+ LOG(LS_ERROR) << "Failed to start the screen cast session.";
-+ that->portal_init_failed_ = true;
-+ return;
-+ }
-+
-+ // Array of PipeWire streams. See
-+ // https://github.com/flatpak/xdg-desktop-portal/blob/master/data/org.freedesktop.portal.ScreenCast.xml
-+ // documentation for .
-+ if (g_variant_lookup(response_data, "streams", "a(ua{sv})", &iter)) {
-+ GVariant* variant;
-+
-+ while (g_variant_iter_next(iter, "@(ua{sv})", &variant)) {
-+ guint32 stream_id;
-+ gint32 width;
-+ gint32 height;
-+ GVariant* options;
-+
-+ g_variant_get(variant, "(u@a{sv})", &stream_id, &options);
-+ RTC_DCHECK(options != nullptr);
-+
-+ g_variant_lookup(options, "size", "(ii)", &width, &height);
-+
-+ that->desktop_size_.set(width, height);
-+
-+ g_variant_unref(options);
-+ g_variant_unref(variant);
-+ }
-+ }
-+ g_variant_iter_free(iter);
-+ g_variant_unref(response_data);
-+
-+ that->OpenPipeWireRemote();
-+}
-+
-+void BaseCapturerPipeWire::OpenPipeWireRemote() {
-+ GVariantBuilder builder;
-+ g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT);
-+
-+ LOG(LS_INFO) << "Opening the PipeWire remote.";
-+
-+ g_dbus_proxy_call_with_unix_fd_list(
-+ proxy_, "OpenPipeWireRemote",
-+ g_variant_new("(oa{sv})", session_handle_, &builder),
-+ G_DBUS_CALL_FLAGS_NONE, /*timeout=*/-1, /*fd_list=*/nullptr,
-+ /*cancellable=*/nullptr,
-+ reinterpret_cast(OnOpenPipeWireRemoteRequested),
-+ this);
-+}
-+
-+// static
-+void BaseCapturerPipeWire::OnOpenPipeWireRemoteRequested(
-+ GDBusConnection* connection,
-+ GAsyncResult* result,
-+ gpointer user_data) {
-+ BaseCapturerPipeWire* that =
-+ static_cast(user_data);
-+ RTC_DCHECK(that);
-+
-+ GError* error = nullptr;
-+ GUnixFDList* outlist = nullptr;
-+ GVariant* variant = g_dbus_proxy_call_with_unix_fd_list_finish(
-+ that->proxy_, &outlist, result, &error);
-+ if (!variant) {
-+ LOG(LS_ERROR) << "Failed to open the PipeWire remote: "
-+ << error->message;
-+ g_error_free(error);
-+ that->portal_init_failed_ = true;
-+ return;
-+ }
-+
-+ gint32 index;
-+ g_variant_get(variant, "(h)", &index);
-+
-+ if ((that->pw_fd_ = g_unix_fd_list_get(outlist, index, &error)) == -1) {
-+ LOG(LS_ERROR) << "Failed to get file descriptor from the list: "
-+ << error->message;
-+ g_error_free(error);
-+ g_variant_unref(variant);
-+ that->portal_init_failed_ = true;
-+ return;
-+ }
-+
-+ g_variant_unref(variant);
-+ g_object_unref(outlist);
-+
-+ that->InitPipeWire();
-+ LOG(LS_INFO) << "PipeWire remote opened.";
-+}
-+
-+void BaseCapturerPipeWire::Start(Callback* callback) {
-+ RTC_DCHECK(!callback_);
-+ RTC_DCHECK(callback);
-+
-+ InitPortals();
-+
-+ callback_ = callback;
-+}
-+
-+void BaseCapturerPipeWire::CaptureFrame() {
-+ if (portal_init_failed_) {
-+ callback_->OnCaptureResult(Result::ERROR_PERMANENT, nullptr);
-+ return;
-+ }
-+
-+ if (!current_frame_) {
-+ callback_->OnCaptureResult(Result::ERROR_TEMPORARY, nullptr);
-+ return;
-+ }
-+
-+ std::unique_ptr result(new BasicDesktopFrame(desktop_size_));
-+ result->CopyPixelsFrom(
-+ current_frame_, (desktop_size_.width() * kBytesPerPixelPw),
-+ DesktopRect::MakeWH(desktop_size_.width(), desktop_size_.height()));
-+ if (!result) {
-+ callback_->OnCaptureResult(Result::ERROR_TEMPORARY, nullptr);
-+ return;
-+ }
-+ callback_->OnCaptureResult(Result::SUCCESS, std::move(result));
-+}
-+
-+bool BaseCapturerPipeWire::GetSourceList(SourceList* sources) {
-+ RTC_DCHECK(sources->size() == 0);
-+ // List of available screens is already presented by the xdg-desktop-portal.
-+ // But we have to add an empty source as the code expects it.
-+ sources->push_back({0});
-+ return true;
-+}
-+
-+bool BaseCapturerPipeWire::SelectSource(SourceId id) {
-+ // Screen selection is handled by the xdg-desktop-portal.
-+ return true;
-+}
-+
-+} // namespace webrtc
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/base_capturer_pipewire.h firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/base_capturer_pipewire.h
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/base_capturer_pipewire.h 1970-01-01 01:00:00.000000000 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/base_capturer_pipewire.h 2019-01-07 13:20:40.141768272 +0100
-@@ -0,0 +1,167 @@
-+/*
-+ * Copyright 2018 The WebRTC project authors. All Rights Reserved.
-+ *
-+ * Use of this source code is governed by a BSD-style license
-+ * that can be found in the LICENSE file in the root of the source
-+ * tree. An additional intellectual property rights grant can be found
-+ * in the file PATENTS. All contributing project authors may
-+ * be found in the AUTHORS file in the root of the source tree.
-+ */
-+
-+#ifndef MODULES_DESKTOP_CAPTURE_BASE_CAPTURER_PIPEWIRE_H_
-+#define MODULES_DESKTOP_CAPTURE_BASE_CAPTURER_PIPEWIRE_H_
-+
-+#include
-+#define typeof __typeof__
-+#include
-+#include
-+
-+#include "webrtc/modules/desktop_capture/desktop_capture_options.h"
-+#include "webrtc/modules/desktop_capture/desktop_capturer.h"
-+
-+namespace webrtc {
-+
-+class PipeWireType {
-+ public:
-+ spa_type_media_type media_type;
-+ spa_type_media_subtype media_subtype;
-+ spa_type_format_video format_video;
-+ spa_type_video_format video_format;
-+};
-+
-+class BaseCapturerPipeWire : public DesktopCapturer {
-+ public:
-+ enum CaptureSourceType { Screen = 1, Window };
-+
-+ explicit BaseCapturerPipeWire(CaptureSourceType source_type);
-+ ~BaseCapturerPipeWire() override;
-+
-+ // DesktopCapturer interface.
-+ void Start(Callback* delegate) override;
-+ void Stop() override { callback_ = nullptr; }
-+ void CaptureFrame() override;
-+ bool GetSourceList(SourceList* sources) override;
-+ bool SelectSource(SourceId id) override;
-+
-+ private:
-+ // PipeWire types -->
-+ pw_core* pw_core_ = nullptr;
-+ pw_type* pw_core_type_ = nullptr;
-+ pw_stream* pw_stream_ = nullptr;
-+ pw_remote* pw_remote_ = nullptr;
-+ pw_loop* pw_loop_ = nullptr;
-+ pw_thread_loop* pw_main_loop_ = nullptr;
-+ PipeWireType* pw_type_ = nullptr;
-+
-+ spa_hook spa_stream_listener_ = {};
-+ spa_hook spa_remote_listener_ = {};
-+
-+ pw_stream_events pw_stream_events_ = {};
-+ pw_remote_events pw_remote_events_ = {};
-+
-+ spa_video_info_raw* spa_video_format_ = nullptr;
-+
-+ gint32 pw_fd_ = -1;
-+
-+ CaptureSourceType capture_source_type_ =
-+ BaseCapturerPipeWire::CaptureSourceType::Screen;
-+
-+ // <-- end of PipeWire types
-+
-+ GDBusConnection* connection_ = nullptr;
-+ GDBusProxy* proxy_ = nullptr;
-+ gchar* portal_handle_ = nullptr;
-+ gchar* session_handle_ = nullptr;
-+ gchar* sources_handle_ = nullptr;
-+ gchar* start_handle_ = nullptr;
-+ guint session_request_signal_id_ = 0;
-+ guint sources_request_signal_id_ = 0;
-+ guint start_request_signal_id_ = 0;
-+
-+ DesktopSize desktop_size_ = {};
-+ DesktopCaptureOptions options_ = {};
-+
-+ uint8_t* current_frame_ = nullptr;
-+ Callback* callback_ = nullptr;
-+
-+ bool portal_init_failed_ = false;
-+
-+ void InitPortals();
-+ void InitPipeWire();
-+ void InitPipeWireTypes();
-+
-+ void CreateReceivingStream();
-+ void HandleBuffer(pw_buffer* buffer);
-+
-+ void ConvertRGBxToBGRx(uint8_t* frame, uint32_t size);
-+
-+ static void OnStateChanged(void* data,
-+ pw_remote_state old_state,
-+ pw_remote_state state,
-+ const char* error);
-+ static void OnStreamStateChanged(void* data,
-+ pw_stream_state old_state,
-+ pw_stream_state state,
-+ const char* error_message);
-+
-+ static void OnStreamFormatChanged(void* data, const struct spa_pod* format);
-+ static void OnStreamProcess(void* data);
-+ static void OnNewBuffer(void* data, uint32_t id);
-+
-+ guint SetupRequestResponseSignal(const gchar* object_path,
-+ GDBusSignalCallback callback);
-+
-+ static void OnProxyRequested(GObject* object,
-+ GAsyncResult* result,
-+ gpointer user_data);
-+
-+ static gchar* PrepareSignalHandle(GDBusConnection* connection,
-+ const gchar* token);
-+
-+ void SessionRequest();
-+ static void OnSessionRequested(GDBusConnection* connection,
-+ GAsyncResult* result,
-+ gpointer user_data);
-+ static void OnSessionRequestResponseSignal(GDBusConnection* connection,
-+ const gchar* sender_name,
-+ const gchar* object_path,
-+ const gchar* interface_name,
-+ const gchar* signal_name,
-+ GVariant* parameters,
-+ gpointer user_data);
-+
-+ void SourcesRequest();
-+ static void OnSourcesRequested(GDBusConnection* connection,
-+ GAsyncResult* result,
-+ gpointer user_data);
-+ static void OnSourcesRequestResponseSignal(GDBusConnection* connection,
-+ const gchar* sender_name,
-+ const gchar* object_path,
-+ const gchar* interface_name,
-+ const gchar* signal_name,
-+ GVariant* parameters,
-+ gpointer user_data);
-+
-+ void StartRequest();
-+ static void OnStartRequested(GDBusConnection* connection,
-+ GAsyncResult* result,
-+ gpointer user_data);
-+ static void OnStartRequestResponseSignal(GDBusConnection* connection,
-+ const gchar* sender_name,
-+ const gchar* object_path,
-+ const gchar* interface_name,
-+ const gchar* signal_name,
-+ GVariant* parameters,
-+ gpointer user_data);
-+
-+ void OpenPipeWireRemote();
-+ static void OnOpenPipeWireRemoteRequested(GDBusConnection* connection,
-+ GAsyncResult* result,
-+ gpointer user_data);
-+
-+ RTC_DISALLOW_COPY_AND_ASSIGN(BaseCapturerPipeWire);
-+};
-+
-+} // namespace webrtc
-+
-+#endif // MODULES_DESKTOP_CAPTURE_BASE_CAPTURER_PIPEWIRE_H_
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_gn/moz.build firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_gn/moz.build
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_gn/moz.build 2019-01-07 13:16:46.410433280 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_gn/moz.build 2019-01-07 13:20:40.146768322 +0100
-@@ -143,14 +143,26 @@
- "/media/webrtc/trunk/webrtc/modules/desktop_capture/x11/x_server_pixel_buffer.cc"
- ]
-
-+# Common Linux stuff between X11 and PipeWire
- if CONFIG["OS_TARGET"] == "Linux":
-
- DEFINES["USE_NSS_CERTS"] = "1"
-- DEFINES["USE_X11"] = "1"
- DEFINES["WEBRTC_LINUX"] = True
- DEFINES["WEBRTC_POSIX"] = True
- DEFINES["_FILE_OFFSET_BITS"] = "64"
-
-+ UNIFIED_SOURCES += [
-+ "/media/webrtc/trunk/webrtc/modules/desktop_capture/app_capturer_linux.cc",
-+ "/media/webrtc/trunk/webrtc/modules/desktop_capture/mouse_cursor_monitor_linux.cc",
-+ "/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_linux.cc",
-+ "/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_linux.cc",
-+ ]
-+
-+# X11 specific files
-+if CONFIG["OS_TARGET"] == "Linux":
-+
-+ DEFINES["USE_X11"] = "1"
-+
- OS_LIBS += [
- "rt",
- "X11",
-@@ -177,6 +189,27 @@
- "/media/webrtc/trunk/webrtc/modules/desktop_capture/x11/x_server_pixel_buffer.cc"
+diff -up firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build.firefox-pipewire firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build
+--- firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build.firefox-pipewire 2019-07-01 22:30:33.000000000 +0200
++++ firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build 2019-07-08 15:26:15.397161627 +0200
+@@ -194,6 +194,28 @@ if CONFIG["OS_TARGET"] == "Linux":
+ "/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_linux.cc"
]
+# PipeWire specific files
@@ -1427,1145 +40,24 @@ diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desk
+ CXXFLAGS += CONFIG['TK_CFLAGS']
+
+ UNIFIED_SOURCES += [
-+ "/media/webrtc/trunk/webrtc/modules/desktop_capture/base_capturer_pipewire.cc",
-+ "/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_pipewire.cc",
-+ "/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_pipewire.cc"
++ "/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc",
++ "/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc",
++ "/media/webrtc/trunk/webrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc"
+ ]
++
+
if CONFIG["OS_TARGET"] == "NetBSD":
DEFINES["USE_X11"] = "1"
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h 2019-01-07 13:16:46.361432790 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h 2019-01-07 13:20:40.144768302 +0100
-@@ -107,6 +107,11 @@
- }
- #endif
-
-+#if defined(WEBRTC_USE_PIPEWIRE)
-+ bool allow_pipewire() const { return allow_pipewire_; }
-+ void set_allow_pipewire(bool allow) { allow_pipewire_ = allow; }
-+#endif
-+
- private:
- #if defined(USE_X11)
- rtc::scoped_refptr x_display_;
-@@ -129,6 +134,9 @@
- #endif
+diff -up firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h.firefox-pipewire firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h
+--- firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h.firefox-pipewire 2019-07-08 16:42:13.936254926 +0200
++++ firefox-68.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_options.h 2019-07-08 16:42:17.509264974 +0200
+@@ -141,7 +141,7 @@ class DesktopCaptureOptions {
bool disable_effects_ = true;
bool detect_updated_region_ = false;
-+#if defined(WEBRTC_USE_PIPEWIRE)
+ #if defined(WEBRTC_USE_PIPEWIRE)
+- bool allow_pipewire_ = false;
+ bool allow_pipewire_ = true;
-+#endif
+ #endif
};
- } // namespace webrtc
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capturer.cc firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capturer.cc
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capturer.cc 2019-01-07 13:16:46.389433070 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capturer.cc 2019-01-07 13:20:40.148768342 +0100
-@@ -66,4 +66,17 @@
- return capturer;
- }
-
-+#if defined(WEBRTC_USE_PIPEWIRE) || defined(USE_X11)
-+bool DesktopCapturer::IsRunningUnderWayland() {
-+ const char* xdg_session_type = getenv("XDG_SESSION_TYPE");
-+ if (!xdg_session_type || strncmp(xdg_session_type, "wayland", 7) != 0)
-+ return false;
-+
-+ if (!(getenv("WAYLAND_DISPLAY")))
-+ return false;
-+
-+ return true;
-+}
-+#endif
-+
- } // namespace webrtc
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capturer.h firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capturer.h
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capturer.h 2019-01-07 13:16:46.394433120 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capturer.h 2019-01-07 13:20:40.147768332 +0100
-@@ -129,6 +129,10 @@
- static std::unique_ptr CreateAppCapturer(
- const DesktopCaptureOptions& options);
-
-+#if defined(WEBRTC_USE_PIPEWIRE) || defined(USE_X11)
-+ static bool IsRunningUnderWayland();
-+#endif
-+
- protected:
- // CroppingWindowCapturer needs to create raw capturers without wrappers, so
- // the following two functions are protected.
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/mouse_cursor_monitor_linux.cc firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/mouse_cursor_monitor_linux.cc
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/mouse_cursor_monitor_linux.cc 1970-01-01 01:00:00.000000000 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/mouse_cursor_monitor_linux.cc 2019-01-07 13:20:40.165768512 +0100
-@@ -0,0 +1,40 @@
-+/*
-+ * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
-+ *
-+ * Use of this source code is governed by a BSD-style license
-+ * that can be found in the LICENSE file in the root of the source
-+ * tree. An additional intellectual property rights grant can be found
-+ * in the file PATENTS. All contributing project authors may
-+ * be found in the AUTHORS file in the root of the source tree.
-+ */
-+
-+#include "webrtc/modules/desktop_capture/mouse_cursor_monitor.h"
-+
-+#if defined(USE_X11)
-+#include "webrtc/modules/desktop_capture/mouse_cursor_monitor_x11.h"
-+#endif // defined(USE_X11)
-+
-+namespace webrtc {
-+
-+// static
-+MouseCursorMonitor* MouseCursorMonitor::CreateForWindow(
-+ const DesktopCaptureOptions& options, WindowId window) {
-+#if defined(USE_X11)
-+ return MouseCursorMonitorX11::CreateForWindow(options, window);
-+#else
-+ return nullptr;
-+#endif // defined(USE_X11)
-+}
-+
-+// static
-+MouseCursorMonitor* MouseCursorMonitor::CreateForScreen(
-+ const DesktopCaptureOptions& options,
-+ ScreenId screen) {
-+#if defined(USE_X11)
-+ return MouseCursorMonitorX11::CreateForScreen(options, screen);
-+#else
-+ return nullptr;
-+#endif // defined(USE_X11)
-+}
-+
-+} // namespace webrtc
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/mouse_cursor_monitor_x11.cc firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/mouse_cursor_monitor_x11.cc
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/mouse_cursor_monitor_x11.cc 2019-01-07 13:16:46.368432860 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/mouse_cursor_monitor_x11.cc 2019-01-07 13:20:40.166768522 +0100
-@@ -16,6 +16,8 @@
- #include
- #include
-
-+#include "webrtc/modules/desktop_capture/mouse_cursor_monitor_x11.h"
-+
- #include "webrtc/modules/desktop_capture/desktop_capture_options.h"
- #include "webrtc/modules/desktop_capture/desktop_frame.h"
- #include "webrtc/modules/desktop_capture/mouse_cursor.h"
-@@ -59,38 +61,6 @@
-
- namespace webrtc {
-
--class MouseCursorMonitorX11 : public MouseCursorMonitor,
-- public SharedXDisplay::XEventHandler {
-- public:
-- MouseCursorMonitorX11(const DesktopCaptureOptions& options, Window window, Window inner_window);
-- ~MouseCursorMonitorX11() override;
--
-- void Start(Callback* callback, Mode mode) override;
-- void Stop() override;
-- void Capture() override;
--
-- private:
-- // SharedXDisplay::XEventHandler interface.
-- bool HandleXEvent(const XEvent& event) override;
--
-- Display* display() { return x_display_->display(); }
--
-- // Captures current cursor shape and stores it in |cursor_shape_|.
-- void CaptureCursor();
--
-- rtc::scoped_refptr x_display_;
-- Callback* callback_;
-- Mode mode_;
-- Window window_;
-- Window inner_window_;
--
-- bool have_xfixes_;
-- int xfixes_event_base_;
-- int xfixes_error_base_;
--
-- std::unique_ptr cursor_shape_;
--};
--
- MouseCursorMonitorX11::MouseCursorMonitorX11(
- const DesktopCaptureOptions& options,
- Window window, Window inner_window)
-@@ -244,7 +214,7 @@
- }
-
- // static
--MouseCursorMonitor* MouseCursorMonitor::CreateForWindow(
-+MouseCursorMonitor* MouseCursorMonitorX11::CreateForWindow(
- const DesktopCaptureOptions& options, WindowId window) {
- if (!options.x_display())
- return NULL;
-@@ -254,7 +224,7 @@
- return new MouseCursorMonitorX11(options, outer_window, window);
- }
-
--MouseCursorMonitor* MouseCursorMonitor::CreateForScreen(
-+MouseCursorMonitor* MouseCursorMonitorX11::CreateForScreen(
- const DesktopCaptureOptions& options,
- ScreenId screen) {
- if (!options.x_display())
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/mouse_cursor_monitor_x11.h firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/mouse_cursor_monitor_x11.h
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/mouse_cursor_monitor_x11.h 1970-01-01 01:00:00.000000000 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/mouse_cursor_monitor_x11.h 2019-01-07 13:20:40.164768502 +0100
-@@ -0,0 +1,63 @@
-+/*
-+ * Copyright 2018 The WebRTC project authors. All Rights Reserved.
-+ *
-+ * Use of this source code is governed by a BSD-style license
-+ * that can be found in the LICENSE file in the root of the source
-+ * tree. An additional intellectual property rights grant can be found
-+ * in the file PATENTS. All contributing project authors may
-+ * be found in the AUTHORS file in the root of the source tree.
-+ */
-+
-+#ifndef MODULES_DESKTOP_CAPTURE_MOUSE_CURSOR_MONITOR_X11_H_
-+#define MODULES_DESKTOP_CAPTURE_MOUSE_CURSOR_MONITOR_X11_H_
-+
-+#include
-+#include
-+
-+#include "webrtc/modules/desktop_capture/desktop_capture_options.h"
-+#include "webrtc/modules/desktop_capture/desktop_capture_types.h"
-+#include "webrtc/modules/desktop_capture/x11/shared_x_display.h"
-+#include "webrtc/modules/desktop_capture/mouse_cursor.h"
-+#include "webrtc/modules/desktop_capture/mouse_cursor_monitor.h"
-+#include "webrtc/base/scoped_ref_ptr.h"
-+
-+namespace webrtc {
-+
-+class MouseCursorMonitorX11 : public MouseCursorMonitor,
-+ public SharedXDisplay::XEventHandler {
-+ public:
-+ MouseCursorMonitorX11(const DesktopCaptureOptions& options, Window window, Window inner_window);
-+ ~MouseCursorMonitorX11() override;
-+
-+ void Start(Callback* callback, Mode mode) override;
-+ void Stop() override;
-+ void Capture() override;
-+
-+ static MouseCursorMonitor* CreateForWindow(const DesktopCaptureOptions& options, WindowId window);
-+ static MouseCursorMonitor* CreateForScreen(const DesktopCaptureOptions& options, ScreenId screen);
-+
-+ private:
-+ // SharedXDisplay::XEventHandler interface.
-+ bool HandleXEvent(const XEvent& event) override;
-+
-+ Display* display() { return x_display_->display(); }
-+
-+ // Captures current cursor shape and stores it in |cursor_shape_|.
-+ void CaptureCursor();
-+
-+ rtc::scoped_refptr x_display_;
-+ Callback* callback_;
-+ Mode mode_;
-+ Window window_;
-+ Window inner_window_;
-+
-+ bool have_xfixes_;
-+ int xfixes_event_base_;
-+ int xfixes_error_base_;
-+
-+ std::unique_ptr cursor_shape_;
-+};
-+
-+} // namespace webrtc
-+
-+#endif // MODULES_DESKTOP_CAPTURE_MOUSE_CURSOR_MONITOR_X11_H_
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_linux.cc firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_linux.cc
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_linux.cc 1970-01-01 01:00:00.000000000 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_linux.cc 2019-01-07 13:20:40.170768562 +0100
-@@ -0,0 +1,40 @@
-+/*
-+ * Copyright 2018 The WebRTC project authors. All Rights Reserved.
-+ *
-+ * Use of this source code is governed by a BSD-style license
-+ * that can be found in the LICENSE file in the root of the source
-+ * tree. An additional intellectual property rights grant can be found
-+ * in the file PATENTS. All contributing project authors may
-+ * be found in the AUTHORS file in the root of the source tree.
-+ */
-+
-+#include "webrtc/modules/desktop_capture/desktop_capture_options.h"
-+#include "webrtc/modules/desktop_capture/desktop_capturer.h"
-+
-+#if defined(WEBRTC_USE_PIPEWIRE)
-+#include "webrtc/modules/desktop_capture/screen_capturer_pipewire.h"
-+#endif // defined(WEBRTC_USE_PIPEWIRE)
-+
-+#if defined(USE_X11)
-+#include "webrtc/modules/desktop_capture/screen_capturer_x11.h"
-+#endif // defined(USE_X11)
-+
-+namespace webrtc {
-+
-+// static
-+std::unique_ptr DesktopCapturer::CreateRawScreenCapturer(
-+ const DesktopCaptureOptions& options) {
-+#if defined(WEBRTC_USE_PIPEWIRE)
-+ if (options.allow_pipewire() && DesktopCapturer::IsRunningUnderWayland()) {
-+ return ScreenCapturerPipeWire::CreateRawScreenCapturer(options);
-+ }
-+#endif // defined(WEBRTC_USE_PIPEWIRE)
-+
-+#if defined(USE_X11)
-+ return ScreenCapturerX11::CreateRawScreenCapturer(options);
-+#endif // defined(USE_X11)
-+
-+ return nullptr;
-+}
-+
-+} // namespace webrtc
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_pipewire.cc firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_pipewire.cc
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_pipewire.cc 1970-01-01 01:00:00.000000000 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_pipewire.cc 2019-01-07 13:20:40.171768572 +0100
-@@ -0,0 +1,31 @@
-+/*
-+ * Copyright 2018 The WebRTC project authors. All Rights Reserved.
-+ *
-+ * Use of this source code is governed by a BSD-style license
-+ * that can be found in the LICENSE file in the root of the source
-+ * tree. An additional intellectual property rights grant can be found
-+ * in the file PATENTS. All contributing project authors may
-+ * be found in the AUTHORS file in the root of the source tree.
-+ */
-+
-+#include "webrtc/modules/desktop_capture/screen_capturer_pipewire.h"
-+
-+#include
-+
-+namespace webrtc {
-+
-+ScreenCapturerPipeWire::ScreenCapturerPipeWire()
-+ : BaseCapturerPipeWire(BaseCapturerPipeWire::CaptureSourceType::Screen) {}
-+ScreenCapturerPipeWire::~ScreenCapturerPipeWire() {}
-+
-+// static
-+std::unique_ptr
-+ScreenCapturerPipeWire::CreateRawScreenCapturer(
-+ const DesktopCaptureOptions& options) {
-+ std::unique_ptr capturer(
-+ new ScreenCapturerPipeWire());
-+
-+ return std::move(capturer);
-+}
-+
-+} // namespace webrtc
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_pipewire.h firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_pipewire.h
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_pipewire.h 1970-01-01 01:00:00.000000000 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_pipewire.h 2019-01-07 13:20:40.168768542 +0100
-@@ -0,0 +1,33 @@
-+/*
-+ * Copyright 2018 The WebRTC project authors. All Rights Reserved.
-+ *
-+ * Use of this source code is governed by a BSD-style license
-+ * that can be found in the LICENSE file in the root of the source
-+ * tree. An additional intellectual property rights grant can be found
-+ * in the file PATENTS. All contributing project authors may
-+ * be found in the AUTHORS file in the root of the source tree.
-+ */
-+
-+#ifndef MODULES_DESKTOP_CAPTURE_SCREEN_CAPTURER_PIPEWIRE_H_
-+#define MODULES_DESKTOP_CAPTURE_SCREEN_CAPTURER_PIPEWIRE_H_
-+
-+#include
-+
-+#include "webrtc/modules/desktop_capture/base_capturer_pipewire.h"
-+
-+namespace webrtc {
-+
-+class ScreenCapturerPipeWire : public BaseCapturerPipeWire {
-+ public:
-+ ScreenCapturerPipeWire();
-+ ~ScreenCapturerPipeWire() override;
-+
-+ static std::unique_ptr CreateRawScreenCapturer(
-+ const DesktopCaptureOptions& options);
-+
-+ RTC_DISALLOW_COPY_AND_ASSIGN(ScreenCapturerPipeWire);
-+};
-+
-+} // namespace webrtc
-+
-+#endif // MODULES_DESKTOP_CAPTURE_SCREEN_CAPTURER_PIPEWIRE_H_
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_x11.cc firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_x11.cc
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_x11.cc 2019-01-07 13:16:46.376432940 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_x11.cc 2019-01-07 13:20:40.173768592 +0100
-@@ -19,6 +19,8 @@
- #include
- #include
-
-+#include "webrtc/modules/desktop_capture/screen_capturer_x11.h"
-+
- #include "webrtc/base/checks.h"
- #include "webrtc/base/constructormagic.h"
- #include "webrtc/base/timeutils.h"
-@@ -32,100 +34,12 @@
- #include "webrtc/system_wrappers/include/logging.h"
-
- namespace webrtc {
--namespace {
--
--// A class to perform video frame capturing for Linux.
--//
--// If XDamage is used, this class sets DesktopFrame::updated_region() according
--// to the areas reported by XDamage. Otherwise this class does not detect
--// DesktopFrame::updated_region(), the field is always set to the entire frame
--// rectangle. ScreenCapturerDifferWrapper should be used if that functionality
--// is necessary.
--class ScreenCapturerLinux : public DesktopCapturer,
-- public SharedXDisplay::XEventHandler {
-- public:
-- ScreenCapturerLinux();
-- ~ScreenCapturerLinux() override;
--
-- // TODO(ajwong): Do we really want this to be synchronous?
-- bool Init(const DesktopCaptureOptions& options);
--
-- // DesktopCapturer interface.
-- void Start(Callback* delegate) override;
-- void Stop() override;
-- void CaptureFrame() override;
-- bool GetSourceList(SourceList* sources) override;
-- bool SelectSource(SourceId id) override;
--
-- private:
-- Display* display() { return options_.x_display()->display(); }
--
-- // SharedXDisplay::XEventHandler interface.
-- bool HandleXEvent(const XEvent& event) override;
--
-- void InitXDamage();
--
-- // Capture screen pixels to the current buffer in the queue. In the DAMAGE
-- // case, the ScreenCapturerHelper already holds the list of invalid rectangles
-- // from HandleXEvent(). In the non-DAMAGE case, this captures the
-- // whole screen, then calculates some invalid rectangles that include any
-- // differences between this and the previous capture.
-- std::unique_ptr CaptureScreen();
--
-- // Called when the screen configuration is changed.
-- void ScreenConfigurationChanged();
--
-- // Synchronize the current buffer with |last_buffer_|, by copying pixels from
-- // the area of |last_invalid_rects|.
-- // Note this only works on the assumption that kNumBuffers == 2, as
-- // |last_invalid_rects| holds the differences from the previous buffer and
-- // the one prior to that (which will then be the current buffer).
-- void SynchronizeFrame();
--
-- void DeinitXlib();
--
-- DesktopCaptureOptions options_;
--
-- Callback* callback_ = nullptr;
--
-- // X11 graphics context.
-- GC gc_ = nullptr;
-- Window root_window_ = BadValue;
--
-- // XFixes.
-- bool has_xfixes_ = false;
-- int xfixes_event_base_ = -1;
-- int xfixes_error_base_ = -1;
--
-- // XDamage information.
-- bool use_damage_ = false;
-- Damage damage_handle_ = 0;
-- int damage_event_base_ = -1;
-- int damage_error_base_ = -1;
-- XserverRegion damage_region_ = 0;
--
-- // Access to the X Server's pixel buffer.
-- XServerPixelBuffer x_server_pixel_buffer_;
--
-- // A thread-safe list of invalid rectangles, and the size of the most
-- // recently captured screen.
-- ScreenCapturerHelper helper_;
--
-- // Queue of the frames buffers.
-- ScreenCaptureFrameQueue queue_;
--
-- // Invalid region from the previous capture. This is used to synchronize the
-- // current with the last buffer used.
-- DesktopRegion last_invalid_region_;
--
-- RTC_DISALLOW_COPY_AND_ASSIGN(ScreenCapturerLinux);
--};
-
--ScreenCapturerLinux::ScreenCapturerLinux() {
-+ScreenCapturerX11::ScreenCapturerX11() {
- helper_.SetLogGridSize(4);
- }
-
--ScreenCapturerLinux::~ScreenCapturerLinux() {
-+ScreenCapturerX11::~ScreenCapturerX11() {
- options_.x_display()->RemoveEventHandler(ConfigureNotify, this);
- if (use_damage_) {
- options_.x_display()->RemoveEventHandler(
-@@ -134,7 +48,7 @@
- DeinitXlib();
- }
-
--bool ScreenCapturerLinux::Init(const DesktopCaptureOptions& options) {
-+bool ScreenCapturerX11::Init(const DesktopCaptureOptions& options) {
- options_ = options;
-
- root_window_ = RootWindow(display(), DefaultScreen(display()));
-@@ -177,7 +91,7 @@
- return true;
- }
-
--void ScreenCapturerLinux::InitXDamage() {
-+void ScreenCapturerX11::InitXDamage() {
- // Our use of XDamage requires XFixes.
- if (!has_xfixes_) {
- return;
-@@ -218,18 +132,18 @@
- LOG(LS_INFO) << "Using XDamage extension.";
- }
-
--void ScreenCapturerLinux::Start(Callback* callback) {
-+void ScreenCapturerX11::Start(Callback* callback) {
- RTC_DCHECK(!callback_);
- RTC_DCHECK(callback);
-
- callback_ = callback;
- }
-
--void ScreenCapturerLinux::Stop() {
-+void ScreenCapturerX11::Stop() {
- callback_ = NULL;
- }
-
--void ScreenCapturerLinux::CaptureFrame() {
-+void ScreenCapturerX11::CaptureFrame() {
- int64_t capture_start_time_nanos = rtc::TimeNanos();
-
- queue_.MoveToNextFrame();
-@@ -243,6 +157,7 @@
- // in a good shape.
- if (!x_server_pixel_buffer_.is_initialized()) {
- // We failed to initialize pixel buffer.
-+ LOG(LS_ERROR) << "Pixel buffer is not initialized.";
- callback_->OnCaptureResult(Result::ERROR_PERMANENT, nullptr);
- return;
- }
-@@ -258,6 +173,7 @@
-
- std::unique_ptr result = CaptureScreen();
- if (!result) {
-+ LOG(LS_WARNING) << "Temporarily failed to capture screen.";
- callback_->OnCaptureResult(Result::ERROR_TEMPORARY, nullptr);
- return;
- }
-@@ -268,19 +184,19 @@
- callback_->OnCaptureResult(Result::SUCCESS, std::move(result));
- }
-
--bool ScreenCapturerLinux::GetSourceList(SourceList* sources) {
-+bool ScreenCapturerX11::GetSourceList(SourceList* sources) {
- RTC_DCHECK(sources->size() == 0);
- // TODO(jiayl): implement screen enumeration.
- sources->push_back({0});
- return true;
- }
-
--bool ScreenCapturerLinux::SelectSource(SourceId id) {
-+bool ScreenCapturerX11::SelectSource(SourceId id) {
- // TODO(jiayl): implement screen selection.
- return true;
- }
-
--bool ScreenCapturerLinux::HandleXEvent(const XEvent& event) {
-+bool ScreenCapturerX11::HandleXEvent(const XEvent& event) {
- if (use_damage_ && (event.type == damage_event_base_ + XDamageNotify)) {
- const XDamageNotifyEvent* damage_event =
- reinterpret_cast(&event);
-@@ -295,7 +211,7 @@
- return false;
- }
-
--std::unique_ptr ScreenCapturerLinux::CaptureScreen() {
-+std::unique_ptr ScreenCapturerX11::CaptureScreen() {
- std::unique_ptr frame = queue_.current_frame()->Share();
- RTC_DCHECK(x_server_pixel_buffer_.window_size().equals(frame->size()));
-
-@@ -345,14 +261,15 @@
- // Doing full-screen polling, or this is the first capture after a
- // screen-resolution change. In either case, need a full-screen capture.
- DesktopRect screen_rect = DesktopRect::MakeSize(frame->size());
-- x_server_pixel_buffer_.CaptureRect(screen_rect, frame.get());
-+ if (!x_server_pixel_buffer_.CaptureRect(screen_rect, frame.get()))
-+ return nullptr;
- updated_region->SetRect(screen_rect);
- }
-
- return std::move(frame);
- }
-
--void ScreenCapturerLinux::ScreenConfigurationChanged() {
-+void ScreenCapturerX11::ScreenConfigurationChanged() {
- // Make sure the frame buffers will be reallocated.
- queue_.Reset();
-
-@@ -363,7 +280,7 @@
- }
- }
-
--void ScreenCapturerLinux::SynchronizeFrame() {
-+void ScreenCapturerX11::SynchronizeFrame() {
- // Synchronize the current buffer with the previous one since we do not
- // capture the entire desktop. Note that encoder may be reading from the
- // previous buffer at this time so thread access complaints are false
-@@ -383,7 +300,7 @@
- }
- }
-
--void ScreenCapturerLinux::DeinitXlib() {
-+void ScreenCapturerX11::DeinitXlib() {
- if (gc_) {
- XFreeGC(display(), gc_);
- gc_ = nullptr;
-@@ -404,20 +321,18 @@
- }
- }
-
--} // namespace
--
- // static
--std::unique_ptr DesktopCapturer::CreateRawScreenCapturer(
-+std::unique_ptr ScreenCapturerX11::CreateRawScreenCapturer(
- const DesktopCaptureOptions& options) {
- if (!options.x_display())
- return nullptr;
-
-- std::unique_ptr capturer(new ScreenCapturerLinux());
-+ std::unique_ptr capturer(new ScreenCapturerX11());
- if (!capturer.get()->Init(options)) {
- return nullptr;
- }
-
-- return std::unique_ptr(capturer.release());
-+ return std::move(capturer);
- }
-
- } // namespace webrtc
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_x11.h firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_x11.h
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_x11.h 1970-01-01 01:00:00.000000000 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer_x11.h 2019-01-07 13:20:40.169768552 +0100
-@@ -0,0 +1,124 @@
-+/*
-+ * Copyright 2018 The WebRTC project authors. All Rights Reserved.
-+ *
-+ * Use of this source code is governed by a BSD-style license
-+ * that can be found in the LICENSE file in the root of the source
-+ * tree. An additional intellectual property rights grant can be found
-+ * in the file PATENTS. All contributing project authors may
-+ * be found in the AUTHORS file in the root of the source tree.
-+ */
-+
-+#ifndef MODULES_DESKTOP_CAPTURE_SCREEN_CAPTURER_X11_H_
-+#define MODULES_DESKTOP_CAPTURE_SCREEN_CAPTURER_X11_H_
-+
-+#include
-+#include
-+#include
-+#include
-+#include
-+
-+#include "webrtc/modules/desktop_capture/desktop_capture_options.h"
-+#include "webrtc/modules/desktop_capture/desktop_capturer.h"
-+#include "webrtc/modules/desktop_capture/desktop_frame.h"
-+#include "webrtc/modules/desktop_capture/desktop_region.h"
-+#include "webrtc/modules/desktop_capture/x11/shared_x_display.h"
-+#include "webrtc/modules/desktop_capture/x11/x_server_pixel_buffer.h"
-+#include "webrtc/modules/desktop_capture/screen_capture_frame_queue.h"
-+#include "webrtc/modules/desktop_capture/screen_capturer_helper.h"
-+#include "webrtc/modules/desktop_capture/shared_desktop_frame.h"
-+#include "webrtc/base/constructormagic.h"
-+
-+namespace webrtc {
-+
-+// A class to perform video frame capturing for Linux on X11.
-+//
-+// If XDamage is used, this class sets DesktopFrame::updated_region() according
-+// to the areas reported by XDamage. Otherwise this class does not detect
-+// DesktopFrame::updated_region(), the field is always set to the entire frame
-+// rectangle. ScreenCapturerDifferWrapper should be used if that functionality
-+// is necessary.
-+class ScreenCapturerX11 : public DesktopCapturer,
-+ public SharedXDisplay::XEventHandler {
-+ public:
-+ ScreenCapturerX11();
-+ ~ScreenCapturerX11() override;
-+
-+ static std::unique_ptr CreateRawScreenCapturer(const DesktopCaptureOptions& options);
-+
-+ // TODO(ajwong): Do we really want this to be synchronous?
-+ bool Init(const DesktopCaptureOptions& options);
-+
-+ // DesktopCapturer interface.
-+ void Start(Callback* delegate) override;
-+ void Stop() override;
-+ void CaptureFrame() override;
-+ bool GetSourceList(SourceList* sources) override;
-+ bool SelectSource(SourceId id) override;
-+
-+ private:
-+ Display* display() { return options_.x_display()->display(); }
-+
-+ // SharedXDisplay::XEventHandler interface.
-+ bool HandleXEvent(const XEvent& event) override;
-+
-+ void InitXDamage();
-+
-+ // Capture screen pixels to the current buffer in the queue. In the DAMAGE
-+ // case, the ScreenCapturerHelper already holds the list of invalid rectangles
-+ // from HandleXEvent(). In the non-DAMAGE case, this captures the
-+ // whole screen, then calculates some invalid rectangles that include any
-+ // differences between this and the previous capture.
-+ std::unique_ptr CaptureScreen();
-+
-+ // Called when the screen configuration is changed.
-+ void ScreenConfigurationChanged();
-+
-+ // Synchronize the current buffer with |last_buffer_|, by copying pixels from
-+ // the area of |last_invalid_rects|.
-+ // Note this only works on the assumption that kNumBuffers == 2, as
-+ // |last_invalid_rects| holds the differences from the previous buffer and
-+ // the one prior to that (which will then be the current buffer).
-+ void SynchronizeFrame();
-+
-+ void DeinitXlib();
-+
-+ DesktopCaptureOptions options_;
-+
-+ Callback* callback_ = nullptr;
-+
-+ // X11 graphics context.
-+ GC gc_ = nullptr;
-+ Window root_window_ = BadValue;
-+
-+ // XFixes.
-+ bool has_xfixes_ = false;
-+ int xfixes_event_base_ = -1;
-+ int xfixes_error_base_ = -1;
-+
-+ // XDamage information.
-+ bool use_damage_ = false;
-+ Damage damage_handle_ = 0;
-+ int damage_event_base_ = -1;
-+ int damage_error_base_ = -1;
-+ XserverRegion damage_region_ = 0;
-+
-+ // Access to the X Server's pixel buffer.
-+ XServerPixelBuffer x_server_pixel_buffer_;
-+
-+ // A thread-safe list of invalid rectangles, and the size of the most
-+ // recently captured screen.
-+ ScreenCapturerHelper helper_;
-+
-+ // Queue of the frames buffers.
-+ ScreenCaptureFrameQueue queue_;
-+
-+ // Invalid region from the previous capture. This is used to synchronize the
-+ // current with the last buffer used.
-+ DesktopRegion last_invalid_region_;
-+
-+ RTC_DISALLOW_COPY_AND_ASSIGN(ScreenCapturerX11);
-+};
-+
-+} // namespace webrtc
-+
-+#endif // MODULES_DESKTOP_CAPTURE_SCREEN_CAPTURER_X11_H_
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_linux.cc firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_linux.cc
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_linux.cc 1970-01-01 01:00:00.000000000 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_linux.cc 2019-01-07 13:20:40.196768822 +0100
-@@ -0,0 +1,40 @@
-+/*
-+ * Copyright 2018 The WebRTC project authors. All Rights Reserved.
-+ *
-+ * Use of this source code is governed by a BSD-style license
-+ * that can be found in the LICENSE file in the root of the source
-+ * tree. An additional intellectual property rights grant can be found
-+ * in the file PATENTS. All contributing project authors may
-+ * be found in the AUTHORS file in the root of the source tree.
-+ */
-+
-+#include "webrtc/modules/desktop_capture/desktop_capture_options.h"
-+#include "webrtc/modules/desktop_capture/desktop_capturer.h"
-+
-+#if defined(WEBRTC_USE_PIPEWIRE)
-+#include "webrtc/modules/desktop_capture/window_capturer_pipewire.h"
-+#endif // defined(WEBRTC_USE_PIPEWIRE)
-+
-+#if defined(USE_X11)
-+#include "webrtc/modules/desktop_capture/window_capturer_x11.h"
-+#endif // defined(USE_X11)
-+
-+namespace webrtc {
-+
-+// static
-+std::unique_ptr DesktopCapturer::CreateRawWindowCapturer(
-+ const DesktopCaptureOptions& options) {
-+#if defined(WEBRTC_USE_PIPEWIRE)
-+ if (options.allow_pipewire() && DesktopCapturer::IsRunningUnderWayland()) {
-+ return WindowCapturerPipeWire::CreateRawWindowCapturer(options);
-+ }
-+#endif // defined(WEBRTC_USE_PIPEWIRE)
-+
-+#if defined(USE_X11)
-+ return WindowCapturerX11::CreateRawWindowCapturer(options);
-+#endif // defined(USE_X11)
-+
-+ return nullptr;
-+}
-+
-+} // namespace webrtc
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_pipewire.cc firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_pipewire.cc
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_pipewire.cc 1970-01-01 01:00:00.000000000 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_pipewire.cc 2019-01-07 13:20:40.197768832 +0100
-@@ -0,0 +1,28 @@
-+/*
-+ * Copyright 2018 The WebRTC project authors. All Rights Reserved.
-+ *
-+ * Use of this source code is governed by a BSD-style license
-+ * that can be found in the LICENSE file in the root of the source
-+ * tree. An additional intellectual property rights grant can be found
-+ * in the file PATENTS. All contributing project authors may
-+ * be found in the AUTHORS file in the root of the source tree.
-+ */
-+
-+#include "webrtc/modules/desktop_capture/window_capturer_pipewire.h"
-+
-+namespace webrtc {
-+
-+WindowCapturerPipeWire::WindowCapturerPipeWire()
-+ : BaseCapturerPipeWire(BaseCapturerPipeWire::CaptureSourceType::Window) {}
-+WindowCapturerPipeWire::~WindowCapturerPipeWire() {}
-+
-+// static
-+std::unique_ptr
-+WindowCapturerPipeWire::CreateRawWindowCapturer(
-+ const DesktopCaptureOptions& options) {
-+ std::unique_ptr capturer(
-+ new WindowCapturerPipeWire());
-+
-+ return std::move(capturer);
-+}
-+} // namespace webrtc
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_pipewire.h firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_pipewire.h
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_pipewire.h 1970-01-01 01:00:00.000000000 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_pipewire.h 2019-01-07 13:20:40.177768632 +0100
-@@ -0,0 +1,33 @@
-+/*
-+ * Copyright 2018 The WebRTC project authors. All Rights Reserved.
-+ *
-+ * Use of this source code is governed by a BSD-style license
-+ * that can be found in the LICENSE file in the root of the source
-+ * tree. An additional intellectual property rights grant can be found
-+ * in the file PATENTS. All contributing project authors may
-+ * be found in the AUTHORS file in the root of the source tree.
-+ */
-+
-+#ifndef MODULES_DESKTOP_CAPTURE_WINDOW_CAPTURER_PIPEWIRE_H_
-+#define MODULES_DESKTOP_CAPTURE_WINDOW_CAPTURER_PIPEWIRE_H_
-+
-+#include
-+
-+#include "webrtc/modules/desktop_capture/base_capturer_pipewire.h"
-+
-+namespace webrtc {
-+
-+class WindowCapturerPipeWire : public BaseCapturerPipeWire {
-+ public:
-+ WindowCapturerPipeWire();
-+ ~WindowCapturerPipeWire() override;
-+
-+ static std::unique_ptr CreateRawWindowCapturer(
-+ const DesktopCaptureOptions& options);
-+
-+ RTC_DISALLOW_COPY_AND_ASSIGN(WindowCapturerPipeWire);
-+};
-+
-+} // namespace webrtc
-+
-+#endif // MODULES_DESKTOP_CAPTURE_WINDOW_CAPTURER_PIPEWIRE_H_
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_x11.cc firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_x11.cc
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_x11.cc 2019-01-07 13:16:46.375432930 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_x11.cc 2019-01-07 13:20:40.198768842 +0100
-@@ -17,6 +17,8 @@
-
- #include
-
-+#include "webrtc/modules/desktop_capture/window_capturer_x11.h"
-+
- #include "webrtc/base/constructormagic.h"
- #include "webrtc/base/scoped_ref_ptr.h"
- #include "webrtc/modules/desktop_capture/desktop_capturer.h"
-@@ -30,58 +32,7 @@
-
- namespace webrtc {
-
--namespace {
--
--class WindowCapturerLinux : public DesktopCapturer,
-- public SharedXDisplay::XEventHandler {
-- public:
-- WindowCapturerLinux(const DesktopCaptureOptions& options);
-- ~WindowCapturerLinux() override;
--
-- // DesktopCapturer interface.
-- void Start(Callback* callback) override;
-- void Stop() override;
-- void CaptureFrame() override;
-- bool GetSourceList(SourceList* sources) override;
-- bool SelectSource(SourceId id) override;
-- bool FocusOnSelectedSource() override;
--
-- // SharedXDisplay::XEventHandler interface.
-- bool HandleXEvent(const XEvent& event) override;
--
-- private:
-- Display* display() { return x_display_->display(); }
--
-- // Iterates through |window| hierarchy to find first visible window, i.e. one
-- // that has WM_STATE property set to NormalState.
-- // See http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.3.1 .
-- ::Window GetApplicationWindow(::Window window);
--
-- // Returns true if the |window| is a desktop element.
-- bool IsDesktopElement(::Window window);
--
-- // Returns window title for the specified X |window|.
-- bool GetWindowTitle(::Window window, std::string* title);
--
-- // Returns the id of the owning process.
-- int GetWindowProcessID(::Window window);
--
-- Callback* callback_ = nullptr;
--
-- rtc::scoped_refptr x_display_;
--
-- Atom wm_state_atom_;
-- Atom window_type_atom_;
-- Atom normal_window_type_atom_;
-- bool has_composite_extension_ = false;
--
-- ::Window selected_window_ = 0;
-- XServerPixelBuffer x_server_pixel_buffer_;
--
-- RTC_DISALLOW_COPY_AND_ASSIGN(WindowCapturerLinux);
--};
--
--WindowCapturerLinux::WindowCapturerLinux(const DesktopCaptureOptions& options)
-+WindowCapturerX11::WindowCapturerX11(const DesktopCaptureOptions& options)
- : x_display_(options.x_display()) {
- // Create Atoms so we don't need to do it every time they are used.
- wm_state_atom_ = XInternAtom(display(), "WM_STATE", True);
-@@ -102,11 +53,11 @@
- x_display_->AddEventHandler(ConfigureNotify, this);
- }
-
--WindowCapturerLinux::~WindowCapturerLinux() {
-+WindowCapturerX11::~WindowCapturerX11() {
- x_display_->RemoveEventHandler(ConfigureNotify, this);
- }
-
--bool WindowCapturerLinux::GetSourceList(SourceList* sources) {
-+bool WindowCapturerX11::GetSourceList(SourceList* sources) {
- SourceList result;
-
- XErrorTrap error_trap(display());
-@@ -159,7 +110,7 @@
- return true;
- }
-
--bool WindowCapturerLinux::SelectSource(SourceId id) {
-+bool WindowCapturerX11::SelectSource(SourceId id) {
- if (!x_server_pixel_buffer_.Init(display(), id))
- return false;
-
-@@ -180,7 +131,7 @@
- return true;
- }
-
--bool WindowCapturerLinux::FocusOnSelectedSource() {
-+bool WindowCapturerX11::FocusOnSelectedSource() {
- if (!selected_window_)
- return false;
-
-@@ -229,18 +180,18 @@
- return true;
- }
-
--void WindowCapturerLinux::Start(Callback* callback) {
-+void WindowCapturerX11::Start(Callback* callback) {
- assert(!callback_);
- assert(callback);
-
- callback_ = callback;
- }
-
--void WindowCapturerLinux::Stop() {
-+void WindowCapturerX11::Stop() {
- callback_ = NULL;
- }
-
--void WindowCapturerLinux::CaptureFrame() {
-+void WindowCapturerX11::CaptureFrame() {
- x_display_->ProcessPendingXEvents();
-
- if (!x_server_pixel_buffer_.IsWindowValid()) {
-@@ -274,7 +225,7 @@
- callback_->OnCaptureResult(Result::SUCCESS, std::move(frame));
- }
-
--bool WindowCapturerLinux::HandleXEvent(const XEvent& event) {
-+bool WindowCapturerX11::HandleXEvent(const XEvent& event) {
- if (event.type == ConfigureNotify) {
- XConfigureEvent xce = event.xconfigure;
- if (!DesktopSize(xce.width, xce.height).equals(
-@@ -288,7 +239,7 @@
- return false;
- }
-
--::Window WindowCapturerLinux::GetApplicationWindow(::Window window) {
-+::Window WindowCapturerX11::GetApplicationWindow(::Window window) {
- // Get WM_STATE property of the window.
- XWindowProperty window_state(display(), window, wm_state_atom_);
-
-@@ -326,7 +277,7 @@
- return app_window;
- }
-
--bool WindowCapturerLinux::IsDesktopElement(::Window window) {
-+bool WindowCapturerX11::IsDesktopElement(::Window window) {
- if (window == 0)
- return false;
-
-@@ -361,7 +312,7 @@
- return result;
- }
-
--bool WindowCapturerLinux::GetWindowTitle(::Window window, std::string* title) {
-+bool WindowCapturerX11::GetWindowTitle(::Window window, std::string* title) {
- int status;
- bool result = false;
- XTextProperty window_name;
-@@ -390,9 +341,7 @@
- return result;
- }
-
--} // namespace
--
--int WindowCapturerLinux::GetWindowProcessID(::Window window) {
-+int WindowCapturerX11::GetWindowProcessID(::Window window) {
- // Get _NET_WM_PID property of the window.
- Atom process_atom = XInternAtom(display(), "_NET_WM_PID", True);
- XWindowProperty process_id(display(), window, process_atom);
-@@ -401,11 +350,11 @@
- }
-
- // static
--std::unique_ptr DesktopCapturer::CreateRawWindowCapturer(
-+std::unique_ptr WindowCapturerX11::CreateRawWindowCapturer(
- const DesktopCaptureOptions& options) {
- if (!options.x_display())
- return nullptr;
-- return std::unique_ptr(new WindowCapturerLinux(options));
-+ return std::unique_ptr(new WindowCapturerX11(options));
- }
-
- } // namespace webrtc
-diff -ENwbur firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_x11.h firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_x11.h
---- firefox-64.0/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_x11.h 1970-01-01 01:00:00.000000000 +0100
-+++ firefox-webrtc/media/webrtc/trunk/webrtc/modules/desktop_capture/window_capturer_x11.h 2019-01-07 13:20:40.177768632 +0100
-@@ -0,0 +1,83 @@
-+/*
-+ * Copyright 2018 The WebRTC project authors. All Rights Reserved.
-+ *
-+ * Use of this source code is governed by a BSD-style license
-+ * that can be found in the LICENSE file in the root of the source
-+ * tree. An additional intellectual property rights grant can be found
-+ * in the file PATENTS. All contributing project authors may
-+ * be found in the AUTHORS file in the root of the source tree.
-+ */
-+
-+#ifndef MODULES_DESKTOP_CAPTURE_WINDOW_CAPTURER_X11_H_
-+#define MODULES_DESKTOP_CAPTURE_WINDOW_CAPTURER_X11_H_
-+
-+#include
-+#include
-+#include
-+#include
-+
-+#include "webrtc/modules/desktop_capture/desktop_capture_options.h"
-+#include "webrtc/modules/desktop_capture/desktop_capturer.h"
-+#include "webrtc/modules/desktop_capture/desktop_geometry.h"
-+#include "webrtc/modules/desktop_capture/x11/shared_x_display.h"
-+#include "webrtc/modules/desktop_capture/x11/x_server_pixel_buffer.h"
-+#include "webrtc/base/constructormagic.h"
-+#include "webrtc/base/scoped_ref_ptr.h"
-+
-+namespace webrtc {
-+
-+class WindowCapturerX11 : public DesktopCapturer,
-+ public SharedXDisplay::XEventHandler {
-+ public:
-+ explicit WindowCapturerX11(const DesktopCaptureOptions& options);
-+ ~WindowCapturerX11() override;
-+
-+ static std::unique_ptr CreateRawWindowCapturer(
-+ const DesktopCaptureOptions& options);
-+
-+ // DesktopCapturer interface.
-+ void Start(Callback* callback) override;
-+ void Stop() override;
-+ void CaptureFrame() override;
-+ bool GetSourceList(SourceList* sources) override;
-+ bool SelectSource(SourceId id) override;
-+ bool FocusOnSelectedSource() override;
-+
-+ // SharedXDisplay::XEventHandler interface.
-+ bool HandleXEvent(const XEvent& event) override;
-+
-+ private:
-+ Display* display() { return x_display_->display(); }
-+
-+ // Iterates through |window| hierarchy to find first visible window, i.e. one
-+ // that has WM_STATE property set to NormalState.
-+ // See http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.3.1 .
-+ ::Window GetApplicationWindow(::Window window);
-+
-+ // Returns true if the |window| is a desktop element.
-+ bool IsDesktopElement(::Window window);
-+
-+ // Returns window title for the specified X |window|.
-+ bool GetWindowTitle(::Window window, std::string* title);
-+
-+ // Returns the id of the owning process.
-+ int GetWindowProcessID(::Window window);
-+
-+ Callback* callback_ = nullptr;
-+
-+ rtc::scoped_refptr x_display_;
-+
-+ Atom wm_state_atom_;
-+ Atom window_type_atom_;
-+ Atom normal_window_type_atom_;
-+ bool has_composite_extension_ = false;
-+
-+ ::Window selected_window_ = 0;
-+ XServerPixelBuffer x_server_pixel_buffer_;
-+
-+ RTC_DISALLOW_COPY_AND_ASSIGN(WindowCapturerX11);
-+};
-+
-+} // namespace webrtc
-+
-+#endif // MODULES_DESKTOP_CAPTURE_WINDOW_CAPTURER_X11_H_
diff --git a/icecat-60.6.1-mozilla-1533969.patch b/icecat-60.6.1-mozilla-1533969.patch
deleted file mode 100644
index cdf62c5..0000000
--- a/icecat-60.6.1-mozilla-1533969.patch
+++ /dev/null
@@ -1,32 +0,0 @@
---- a/js/src/util/NativeStack.cpp
-+++ b/js/src/util/NativeStack.cpp
-@@ -16,6 +16,7 @@
- #if defined(ANDROID) && !defined(__aarch64__)
- #include
- #include
-+# define gettid() static_cast(syscall(__NR_gettid))
- #endif
- #else
- #error "Unsupported platform"
---- a/tools/profiler/core/platform.h
-+++ b/tools/profiler/core/platform.h
-@@ -42,16 +42,16 @@
- #include "PlatformMacros.h"
- #include
-
--// We need a definition of gettid(), but glibc doesn't provide a
-+// We need a definition of gettid(), but old glibc versions don't provide a
- // wrapper for it.
- #if defined(__GLIBC__)
- #include
- #include
--static inline pid_t gettid() { return (pid_t)syscall(SYS_gettid); }
-+# define gettid() static_cast(syscall(SYS_gettid))
- #elif defined(GP_OS_darwin)
- #include
- #include
--static inline pid_t gettid() { return (pid_t)syscall(SYS_thread_selfid); }
-+# define gettid() static_cast(syscall(SYS_thread_selfid))
- #elif defined(GP_OS_android)
- #include
- #elif defined(GP_OS_windows)
diff --git a/icecat-bz1445383.patch b/icecat-bz1445383.patch
deleted file mode 100644
index 97fd5dc..0000000
--- a/icecat-bz1445383.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-# HG changeset patch
-# User Peter Simonyi
-# Date 1528570546 14400
-# Node ID 643dfdce06c805659dbfd4f3d8a6e46ee8d3fe9d
-# Parent 04cc917f68c5d554e5b9542cb3745c9453bba58d
-Bug 1445383 - update ccache stats parser for ccache 3.4 and 3.5
-
-MozReview-Commit-ID: KTr9RhkJN5B
-
-diff --git a/python/mozbuild/mozbuild/controller/building.py b/python/mozbuild/mozbuild/controller/building.py
---- a/python/mozbuild/mozbuild/controller/building.py
-+++ b/python/mozbuild/mozbuild/controller/building.py
-@@ -752,16 +752,18 @@ class CCacheStats(object):
- Instances can be subtracted from each other to obtain differences.
- print() or str() the object to show a ``ccache -s`` like output
- of the captured stats.
-
- """
- STATS_KEYS = [
- # (key, description)
- # Refer to stats.c in ccache project for all the descriptions.
-+ ('stats_zero_time', 'stats zero time'),
-+ ('stats_updated', 'stats updated'),
- ('cache_hit_direct', 'cache hit (direct)'),
- ('cache_hit_preprocessed', 'cache hit (preprocessed)'),
- ('cache_hit_rate', 'cache hit rate'),
- ('cache_miss', 'cache miss'),
- ('link', 'called for link'),
- ('preprocessing', 'called for preprocessing'),
- ('multiple', 'multiple source files'),
- ('stdout', 'compiler produced stdout'),
-@@ -833,16 +835,23 @@ class CCacheStats(object):
- raise ValueError('Failed to parse ccache stats output: %s' % line)
-
- @staticmethod
- def _strip_prefix(line, prefix):
- return line[len(prefix):].strip() if line.startswith(prefix) else line
-
- @staticmethod
- def _parse_value(raw_value):
-+ try:
-+ # ccache calls strftime with '%c' (src/stats.c)
-+ ts = time.strptime(raw_value, '%c')
-+ return int(time.mktime(ts))
-+ except ValueError:
-+ pass
-+
- value = raw_value.split()
- unit = ''
- if len(value) == 1:
- numeric = value[0]
- elif len(value) == 2:
- numeric, unit = value
- else:
- raise ValueError('Failed to parse ccache stats value: %s' % raw_value)
-diff --git a/python/mozbuild/mozbuild/test/controller/test_ccachestats.py b/python/mozbuild/mozbuild/test/controller/test_ccachestats.py
---- a/python/mozbuild/mozbuild/test/controller/test_ccachestats.py
-+++ b/python/mozbuild/mozbuild/test/controller/test_ccachestats.py
-@@ -1,14 +1,15 @@
- # This Source Code Form is subject to the terms of the Mozilla Public
- # License, v. 2.0. If a copy of the MPL was not distributed with this
- # file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
- from __future__ import unicode_literals
-
-+import time
- import unittest
-
- from mozunit import main
-
- from mozbuild.controller.building import CCacheStats
-
-
- class TestCcacheStats(unittest.TestCase):
-@@ -169,16 +170,40 @@ class TestCcacheStats(unittest.TestCase)
- unsupported code directive 2
- no input file 2378
- cleanups performed 1792
- files in cache 3479
- cache size 4.4 GB
- max cache size 5.0 GB
- """
-
-+ # Substitute a locally-generated timestamp because the timestamp format is
-+ # locale-dependent.
-+ STAT8 = """
-+ cache directory /home/psimonyi/.ccache
-+ primary config /home/psimonyi/.ccache/ccache.conf
-+ secondary config (readonly) /etc/ccache.conf
-+ stats zero time {timestamp}
-+ cache hit (direct) 571
-+ cache hit (preprocessed) 1203
-+ cache miss 11747
-+ cache hit rate 13.12 %
-+ called for link 623
-+ called for preprocessing 7194
-+ compile failed 32
-+ preprocessor error 137
-+ bad compiler arguments 4
-+ autoconf compile/link 348
-+ no input file 162
-+ cleanups performed 77
-+ files in cache 13464
-+ cache size 6.2 GB
-+ max cache size 7.0 GB
-+ """.format(timestamp=time.strftime('%c'))
-+
- def test_parse_garbage_stats_message(self):
- self.assertRaises(ValueError, CCacheStats, self.STAT_GARBAGE)
-
- def test_parse_zero_stats_message(self):
- stats = CCacheStats(self.STAT0)
- self.assertEqual(stats.cache_dir, "/home/tlin/.ccache")
- self.assertEqual(stats.hit_rates(), (0, 0, 0))
-
-@@ -226,10 +251,15 @@ class TestCcacheStats(unittest.TestCase)
- self.assertTrue(stat6)
- self.assertTrue(stat3)
- self.assertTrue(stats_diff)
-
- # Test stats for 3.3.3.
- stat7 = CCacheStats(self.STAT7)
- self.assertTrue(stat7)
-
-+ def test_stats_version34(self):
-+ # Test parsing 3.4 output.
-+ stat8 = CCacheStats(self.STAT8)
-+ self.assertTrue(stat8)
-+
- if __name__ == '__main__':
- main()
diff --git a/icecat-disable-dbus-remote.patch b/icecat-disable-dbus-remote.patch
deleted file mode 100644
index 2b9f3a0..0000000
--- a/icecat-disable-dbus-remote.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up icecat-60.4.0/toolkit/components/remote/nsRemoteService.cpp.old icecat-60.4.0/toolkit/components/remote/nsRemoteService.cpp
---- icecat-60.4.0/toolkit/components/remote/nsRemoteService.cpp.old 2018-11-06 11:25:46.634929894 +0100
-+++ icecat-60.4.0/toolkit/components/remote/nsRemoteService.cpp 2018-11-06 11:21:49.617828440 +0100
-@@ -31,7 +31,7 @@
-
- NS_IMETHODIMP
- nsRemoteService::Startup(const char* aAppName, const char* aProfileName) {
--#if defined(MOZ_ENABLE_DBUS)
-+#if 0
- nsresult rv;
- mDBusRemoteService = new nsDBusRemoteService();
- rv = mDBusRemoteService->Startup(aAppName, aProfileName);
diff --git a/icecat-fix_addon_installation.patch b/icecat-fix_addon_installation.patch
index fd83f72..5cc140d 100644
--- a/icecat-fix_addon_installation.patch
+++ b/icecat-fix_addon_installation.patch
@@ -1,12 +1,12 @@
# Fixes installation of those addons which don't have ID on IceCat ("Cannot find id for addon" error).
--- a/toolkit/mozapps/extensions/internal/XPIInstall.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIInstall.jsm
-@@ -885,8 +885,30 @@
- throw new Error(`Webextension is signed with an invalid id (${addon.id})`);
+@@ -627,8 +627,30 @@
+ throw new Error(`Extension is signed with an invalid id (${addon.id})`);
}
}
-- if (!addon.id && aInstallLocation.name == KEY_APP_TEMPORARY) {
-- addon.id = generateTemporaryInstallID(aZipReader.file);
+- if (!addon.id && aLocation.isTemporary) {
+- addon.id = generateTemporaryInstallID(aPackage.file);
+ if (!addon.id) {
+ if (aInstallLocation.name == KEY_APP_TEMPORARY) {
+ addon.id = generateTemporaryInstallID(aZipReader.file);
@@ -33,4 +33,4 @@
+ }
}
}
- addon.updateBlocklistState();
+
diff --git a/icecat-fix_jar.patch b/icecat-fix_jar.patch
index 418b5b9..9a64fab 100644
--- a/icecat-fix_jar.patch
+++ b/icecat-fix_jar.patch
@@ -1,11 +1,11 @@
--- browser/locales/jar.orig.mn 2017-03-19 19:59:09.000000000 +0100
+++ browser/locales/jar.mn 2017-03-22 19:49:57.602190867 +0100
-@@ -12,7 +12,7 @@
-
+@@ -14,7 +14,7 @@
@AB_CD@.jar:
% locale browser @AB_CD@ %locale/browser/
--* locale/browser/bookmarks.html (generic/profile/bookmarks.html.in)
+ # bookmarks.html is produced by LOCALIZED_GENERATED_FILES.
+- locale/browser/bookmarks.html (bookmarks.html)
+ locale/browser/bookmarks.html (generic/profile/bookmarks.html.in)
- locale/browser/aboutDialog.dtd (%chrome/browser/aboutDialog.dtd)
- locale/browser/aboutPrivateBrowsing.dtd (%chrome/browser/aboutPrivateBrowsing.dtd)
- locale/browser/aboutPrivateBrowsing.properties (%chrome/browser/aboutPrivateBrowsing.properties)
+
+ locale/browser/accounts.properties (%chrome/browser/accounts.properties)
+ locale/browser/app-extension-fields.properties (%chrome/browser/app-extension-fields.properties)
diff --git a/icecat-lang_download.sh b/icecat-lang_download.sh
index 832a09b..d785ca1 100755
--- a/icecat-lang_download.sh
+++ b/icecat-lang_download.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-VERSION=60.8.0
+VERSION=68.0.2
URL=https://ftp.mozilla.org/pub/firefox/releases/${VERSION}esr/linux-x86_64/xpi/
for u in $URL; do
diff --git a/icecat-mozconfig-common b/icecat-mozconfig-common
index c5a3241..ceab223 100644
--- a/icecat-mozconfig-common
+++ b/icecat-mozconfig-common
@@ -9,13 +9,10 @@ mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir
ac_add_options --prefix="$PREFIX"
ac_add_options --libdir="$LIBDIR"
-ac_add_options --with-pthreads
ac_add_options --enable-necko-wifi
ac_add_options --enable-startup-notification
ac_add_options --disable-updater
ac_add_options --enable-chrome-format=omni
ac_add_options --enable-release
-ac_add_options --enable-pie
-ac_add_options --disable-stylo
# Workaround for mozbz#1341234
ac_add_options BINDGEN_CFLAGS="$(pkg-config nspr pixman-1 --cflags)"
diff --git a/icecat.rpmlintrc b/icecat.rpmlintrc
deleted file mode 100644
index c2c8f6f..0000000
--- a/icecat.rpmlintrc
+++ /dev/null
@@ -1,40 +0,0 @@
-# Whitelisting errors
-# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#whitelist
-# Edited by sagitter (sagitter AT fedoraproject dot org)
-
-# KNOWN BUGS:
-#
-
-# TESTS:
-##### SRPMs #####
-
-# ifarch applied patches are okay
-# https://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support
-addFilter(r'(%ifarch-applied-patch) Patch*')
-
-# ERRORS:
-##### RPMs #####
-
-# chroot function (??)
-addFilter(r'(missing-call-to-chdir-with-chroot) %{_libdir}/icecat/libmozsandbox.so')
-addFilter(r'(missing-call-to-setgroups-before-setuid) %{_libdir}/icecat/libxul.so')
-
-# Expected on FF browser
-# https://support.mozilla.org/en-US/questions/1045418
-addFilter(r'(zero-length) %{_libdir}/icecat/chrome.manifest')
-addFilter(r'(zero-length) %{_libdir}/icecat/browser/chrome.manifest')
-
-# False positive
-addFilter(r'(dangling-symlink) %{_libdir}/icecat/dictionaries %{_datadir}/myspell')
-addFilter(r'(unversioned-explicit-provides) webclient')
-
-# WARNINGS:
-##### RPMs #####
-
-addFilter(r'(no-manual-page-for-binary) icecat-wayland')
-
-##### SRPMs #####
-# Different file size due to the signature of the source code tarbz archive
-addFilter(r'file-size-mismatch')
-
-addFilter(r'(invalid-url) Source*')
diff --git a/icecat.spec b/icecat.spec
index 532c4dd..cd4bb55 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -24,28 +24,29 @@
%endif
# Use system sqlite?
+# sqlite > 3.28.0 unavailable on Fedora < 31
+%if 0%{?fedora} < 31
+%global system_sqlite 0
+%else
%global system_sqlite 1
+%endif
%if 0%{?system_sqlite}
-%global sqlite_version 3.8.4.2
+%global sqlite_version 3.28.0
# 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?
-%global system_libicu 1
+%global system_libicu 1
# Use system nspr/nss?
%global system_nss 1
%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.
-#%%global nspr_build_version %%(pkg-config --silence-errors --modversion nspr 2>/dev/null || echo 65536)
+%global nspr_version 4.19
%global nspr_build_version %{nspr_version}
-%global nss_version 3.34
-#%%global nss_build_version %%(pkg-config --silence-errors --modversion nss 2>/dev/null || echo 65536)
+%global nss_version 3.40.1
%global nss_build_version %{nss_version}
%endif
@@ -66,18 +67,24 @@
# Use mozilla hardening option?
%global hardened_build 1
+# cbingen
+%global use_bundled_cbindgen 1
+
+# Use clang?
+%global build_with_clang 0
+
# Exclude ARM builds for rhbz #1658940
ExcludeArch: %{arm}
# Set new source-code build version
-%global gnu_ver gnu1
+%global gnu_ver gnu1
Name: icecat
-Version: 60.8.0
-Release: 6.%{gnu_ver}%{?dist}
+Version: 68.0.2
+Release: 1.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
-## Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
+# 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/
@@ -89,18 +96,18 @@ Source0: https://sagitter.fedorapeople.org/%{name}/v%{version}/%{name}-%{version
Source2: %{name}.png
Source3: %{name}-mozconfig-common
-##Language files downloaded by source7 script
+# Language files downloaded by source7 script
%if 0%{?build_langpacks}
Source4: %{name}-%{version}-langpacks.tar.gz
%endif
-##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
+# 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
+# manpage file
Source6: %{name}.1
Source7: %{name}-lang_download.sh
@@ -115,12 +122,17 @@ Source14: %{name}.desktop
Source15: %{name}-x11.sh.in
Source16: %{name}-x11.desktop
+# cbingen
+Source17: cbindgen-vendor.tar.xz
+
+Source18: node-stdout-nonblocking-wrapper
+
# Build patches
# Fixes installation of those addons which don't have ID on IceCat ("Cannot find id for addon" error).
Patch1: %{name}-fix_addon_installation.patch
-
Patch2: %{name}-libevent_linkflag.patch
Patch3: mozilla-build-arm.patch
+Patch4: build-rust-ppc64le.patch
# Unrecognized file?
Patch7: %{name}-fix_jar.patch
@@ -142,23 +154,19 @@ Patch37: build-jit-atomic-always-lucky.patch
# Fedora specific patches
Patch219: rhbz-1173156.patch
-Patch225: mozilla-1005640-accept-lang.patch
#ARM run-time patch
Patch226: rhbz-1354671.patch
# Upstream patches
-Patch406: mozilla-256180.patch
-Patch413: mozilla-1353817.patch
+#Patch413: mozilla-1353817.patch
Patch414: Bug-1238661---fix-mozillaSignalTrampoline-to-work-.patch
-Patch416: mozilla-1424422.patch
Patch417: bug1375074-save-restore-x28.patch
-Patch418: mozilla-1436242.patch
-Patch420: %{name}-disable-dbus-remote.patch
-Patch421: %{name}-bz1445383.patch
-Patch422: %{name}-60.6.1-mozilla-1533969.patch
+
# Fix crash on ppc64le (mozilla#1512162)
Patch423: mozilla-1512162.patch
+Patch424: mozilla-1566876-webrtc-ind.patch
+Patch425: mozilla-1568569.patch
# Wayland specific upstream patches
Patch565: firefox-pipewire.patch
@@ -168,6 +176,10 @@ BuildRequires: alsa-lib-devel
BuildRequires: autoconf213
BuildRequires: bzip2-devel
BuildRequires: cairo-devel
+BuildRequires: cargo
+%if !0%{?use_bundled_cbindgen}
+BuildRequires: cbindgen
+%endif
BuildRequires: ccache
BuildRequires: dbus-devel
BuildRequires: dbus-glib-devel
@@ -180,7 +192,7 @@ BuildRequires: freetype-devel
BuildRequires: gdk-pixbuf2
BuildRequires: glib2-devel
BuildRequires: pkgconfig(gtk+-2.0)
-%if %{?toolkit_gtk3}
+%if 0%{?toolkit_gtk3}
BuildRequires: pkgconfig(gtk+-3.0)
%endif
BuildRequires: gstreamer1-devel
@@ -203,20 +215,20 @@ BuildRequires: libXinerama-devel
BuildRequires: libffi-devel
BuildRequires: libnotify-devel
BuildRequires: libpng-devel
-%if %{?with_vpx}
+%if 0%{?with_vpx}
BuildRequires: libvpx-devel
%endif
BuildRequires: libzip-devel
BuildRequires: mesa-libGL-devel
-%if %{?system_nss}
+BuildRequires: nodejs
+BuildRequires: nasm >= 1.13
+BuildRequires: strace
+%if 0%{?system_nss}
BuildRequires: pkgconfig(nspr) >= %{nspr_version}
BuildRequires: pkgconfig(nss) >= %{nss_version}
BuildRequires: nss-static >= %{nss_version}
%endif
-# xlocale.h not provided by glibc-headers > 2.24
-# Set path of libcxx-devel
-BuildRequires: libcxx-devel
BuildRequires: openjpeg-devel
BuildRequires: pango-devel
BuildRequires: pipewire-devel
@@ -237,10 +249,13 @@ BuildRequires: llvm
BuildRequires: llvm-devel
BuildRequires: clang
BuildRequires: clang-libs
+BuildRequires: clang-devel
+%if 0%{?build_with_clang}
+BuildRequires: lld
+%endif
BuildRequires: rust
-BuildRequires: cargo
-%if %{?system_sqlite}
+%if 0%{?system_sqlite}
BuildRequires: pkgconfig(sqlite3) >= %{sqlite_version}
Requires: sqlite >= %{sqlite_build_version}
%endif
@@ -249,7 +264,7 @@ Requires: dconf
Requires: mozilla-filesystem
Requires: p11-kit-trust
-%if %{?system_nss}
+%if 0%{?system_nss}
Requires: nspr >= %{nspr_build_version}
Requires: nss >= %{nss_build_version}
%endif
@@ -303,13 +318,13 @@ to run GNU IceCat natively on Wayland.
%endif
%prep
-%setup -q -n %{name}-%{version}
+%autosetup -N -n %{name}-%{version}
#Fix permissions
-find . -type f -name "*.h" -exec chmod 0644 '{}' \;
-find . -type f -name "*.cpp" -exec chmod 0644 '{}' \;
-find . -type f -name "*.cc" -exec chmod 0644 '{}' \;
-find . -type f -name "*.c" -exec chmod 0644 '{}' \;
+#find . -type f -name "*.h" -exec chmod 0644 '{}' \;
+#find . -type f -name "*.cpp" -exec chmod 0644 '{}' \;
+#find . -type f -name "*.cc" -exec chmod 0644 '{}' \;
+#find . -type f -name "*.c" -exec chmod 0644 '{}' \;
##Copy license files
tar -xf %{SOURCE5}
@@ -317,28 +332,24 @@ tar -xf %{SOURCE5}
%patch1 -p1 -b .fix_addon_installation
%patch2 -p0 -b .libevent_linkflag
%patch3 -p1 -b .arm
-%patch7 -p0
+%patch7 -p0 -b .fix_jar
%patch8 -p0 -b .fix_installer
%patch37 -p1 -b .jit-atomic-lucky
# Fedora patches
%patch219 -p1 -b .rhbz-1173156
-%patch225 -p1 -b .1005640-accept-lang
#ARM run-time patch
%ifarch aarch64
%patch226 -p1 -b .1354671
%endif
-%patch406 -p0 -b .256180
-%patch413 -p1 -b .1353817
+#%%patch413 -p1 -b .1353817
%ifarch %{arm}
%patch414 -p1 -b .Bug-1238661---fix-mozillaSignalTrampoline-to-work
%endif
-%patch416 -p1 -b .1424422
-%patch417 -p1 -b .bug1375074-save-restore-x28
-%patch418 -p1 -b .mozilla-1436242
+#%%patch417 -p1 -b .bug1375074-save-restore-x28
# Patch for big endian platforms only
%if 0%{?big_endian}
@@ -347,18 +358,14 @@ tar -xf %{SOURCE5}
%patch29 -p1 -b .big-endian
%endif
-%patch420 -p1 -b .%{name}-disable-dbus-remote
-%patch421 -p1 -b .%{name}-update-ccache-stats-parser
+%ifarch ppc64 ppc64le
+%patch423 -p1 -b .1512162
+%endif
+%patch424 -p1 -b .mozilla-1566876-webrtc-ind
+%patch425 -p1 -b .mozilla-1568569
-%if 0%{?fedora} > 30
-%patch422 -p1 -b .%{name}-%{version}-mozilla-1533969
-%endif
-%if 0%{?fedora} > 29
-%patch423 -p1 -b .mozilla-1512162.patch
-%endif
# Wayland specific upstream patches
-dos2unix %{PATCH565}
%patch565 -p1 -b .firefox-pipewire
##Remove default configuration and copy the customized one
@@ -397,7 +404,6 @@ echo "ac_add_options --with-system-icu" >> .mozconfig
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 0%{?system_sqlite}
echo "ac_add_options --enable-system-sqlite" >> .mozconfig
@@ -471,21 +477,36 @@ echo "ac_add_options --disable-gtest-in-build" >> .mozconfig
echo "ac_add_options --enable-hardening" >> .mozconfig
%endif
+%ifarch s390 s390x
+echo "ac_add_options --disable-ion" >> .mozconfig
+%endif
+
+echo 'export NODEJS="%{_buildrootdir}/bin/node-stdout-nonblocking-wrapper"' >> .mozconfig
+
# Remove executable bit to make brp-mangle-shebangs happy.
chmod -x third_party/rust/itertools/src/lib.rs
#---------------------------------------------------------------------
%build
-%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
-# ... and that major number of the computed build-time version matches:
-case "%{sqlite_build_version}" in
- "$sqlite_version"*) ;;
- *) exit 1 ;;
-esac
+# cbindgen
+%if 0%{?use_bundled_cbindgen}
+
+mkdir -p my_rust_vendor
+cd my_rust_vendor
+%{__tar} xf %{SOURCE17}
+cd -
+mkdir -p .cargo
+cat > .cargo/config <> .mozconfig
+%else
+export CC=gcc
+export CXX=g++
+export AR="gcc-ar"
+export NM="gcc-nm"
+export RANLIB="gcc-ranlib"
+%endif
+
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.
@@ -749,6 +789,11 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Thu Aug 15 2019 Antonio Trande - 68.0.2-1.gnu1
+- Mozilla release 68.0.2
+- Import cbindgen stuff from Firefox package
+- Do not use sqlite from system
+
* Sun Jul 28 2019 Antonio Trande - 60.8.0-6.gnu1
- Add patch to fix the addon installation
diff --git a/mozilla-1005640-accept-lang.patch b/mozilla-1005640-accept-lang.patch
deleted file mode 100644
index 29d3833..0000000
--- a/mozilla-1005640-accept-lang.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -up firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm.1005640-accept-lang firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm
---- firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm.1005640-accept-lang 2017-01-16 17:16:52.000000000 +0100
-+++ firefox-51.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm 2017-01-18 12:35:29.380394216 +0100
-@@ -2852,6 +2852,11 @@ this.XPIProvider = {
- this.addAddonsToCrashReporter();
- }
-
-+ // Save locale settings to compare it later to check whenever some addon
-+ // changed it.
-+ var previousLocale = Cc["@mozilla.org/chrome/chrome-registry;1"]
-+ .getService(Ci.nsIXULChromeRegistry).getSelectedLocale("global");
-+
- try {
- AddonManagerPrivate.recordTimestamp("XPI_bootstrap_addons_begin");
-
-@@ -2880,6 +2885,14 @@ this.XPIProvider = {
- AddonManagerPrivate.recordException("XPI-BOOTSTRAP", "startup failed", e);
- }
-
-+ var currentLocale = Cc["@mozilla.org/chrome/chrome-registry;1"]
-+ .getService(Ci.nsIXULChromeRegistry).getSelectedLocale("global");
-+ if (currentLocale != previousLocale) {
-+ // We have to flush string cache if the locale was changed during loading
-+ // of addons
-+ Services.obs.notifyObservers(null, "chrome-flush-caches", null);
-+ }
-+
- // Let these shutdown a little earlier when they still have access to most
- // of XPCOM
- Services.obs.addObserver({
diff --git a/mozilla-1353817.patch b/mozilla-1353817.patch
deleted file mode 100644
index dc8d8f8..0000000
--- a/mozilla-1353817.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 1cc652f5525f458b0b4ceb12af24bf5a4367db32 Mon Sep 17 00:00:00 2001
-From: Nicolas Dufresne
-Date: Tue, 23 May 2017 13:09:48 -0400
-Subject: [PATCH] Bug 1353817: Include SkNx_neon.h for ARM64 too
-
-This fixes build errors as arm_neon.h was missing along with some
-missing converters.
----
- gfx/skia/skia/src/core/SkNx.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gfx/skia/skia/src/core/SkNx.h b/gfx/skia/skia/src/core/SkNx.h
-index 6bca856..b0427aa 100644
---- a/gfx/skia/skia/src/core/SkNx.h
-+++ b/gfx/skia/skia/src/core/SkNx.h
-@@ -299,7 +299,7 @@ typedef SkNx<4, uint32_t> Sk4u;
- // Include platform specific specializations if available.
- #if !defined(SKNX_NO_SIMD) && SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2
- #include "../opts/SkNx_sse.h"
--#elif !defined(SKNX_NO_SIMD) && defined(SK_ARM_HAS_NEON)
-+#elif !defined(SKNX_NO_SIMD) && (defined(SK_ARM_HAS_NEON) || defined(SK_CPU_ARM64))
- #include "../opts/SkNx_neon.h"
- #else
-
---
-2.9.4
-
diff --git a/mozilla-1424422.patch b/mozilla-1424422.patch
deleted file mode 100644
index cc8b31f..0000000
--- a/mozilla-1424422.patch
+++ /dev/null
@@ -1,188 +0,0 @@
-diff -up firefox-60.0/browser/base/content/browser.js.1424422 firefox-60.0/browser/base/content/browser.js
---- firefox-60.0/browser/base/content/browser.js.1424422 2018-04-26 22:07:20.000000000 +0200
-+++ firefox-60.0/browser/base/content/browser.js 2018-04-30 11:49:51.609458857 +0200
-@@ -1259,6 +1259,9 @@ var gBrowserInit = {
-
- if (AppConstants.CAN_DRAW_IN_TITLEBAR) {
- gDragSpaceObserver.init();
-+ if (AppConstants.platform == "linux") {
-+ gLightThemeObserver.init();
-+ }
- }
-
- BrowserSearch.initPlaceHolder();
-@@ -1826,6 +1829,9 @@ var gBrowserInit = {
-
- if (AppConstants.CAN_DRAW_IN_TITLEBAR) {
- gDragSpaceObserver.uninit();
-+ if (AppConstants.platform == "linux") {
-+ gLightThemeObserver.uninit();
-+ }
- }
-
- TabsInTitlebar.uninit();
-@@ -5781,6 +5787,24 @@ var gDragSpaceObserver = {
- },
- };
-
-+var gLightThemeObserver = {
-+ init() {
-+ Services.obs.addObserver(this, "lightweight-theme-styling-update");
-+ },
-+
-+ uninit() {
-+ Services.obs.removeObserver(this, "lightweight-theme-styling-update");
-+ },
-+
-+ observe(aSubject, aTopic, aData) {
-+ switch (aTopic) {
-+ case "lightweight-theme-styling-update":
-+ TabsInTitlebar.updateAppearance(true);
-+ break;
-+ }
-+ },
-+};
-+
- // Updates the UI density (for touch and compact mode) based on the uidensity pref.
- var gUIDensity = {
- MODE_NORMAL: 0,
-diff -up firefox-60.0/browser/themes/linux/browser.css.1424422 firefox-60.0/browser/themes/linux/browser.css
---- firefox-60.0/browser/themes/linux/browser.css.1424422 2018-04-26 22:07:21.000000000 +0200
-+++ firefox-60.0/browser/themes/linux/browser.css 2018-04-30 11:45:40.388172492 +0200
-@@ -691,12 +691,34 @@ notification[value="translation"] menuli
- padding-bottom: 2px;
- }
-
-+ /* When default theme is used render titlebar command buttons
-+ * according to system config.
-+ *
-+ * When -moz-lwtheme is enabled use similar approach as on Windows platform.
-+ */
-+ .titlebar-button:-moz-lwtheme {
-+ border: none;
-+ margin: 0 !important;
-+ padding: 8px 17px;
-+ }
-+ .titlebar-button:-moz-lwtheme > .toolbarbutton-icon {
-+ width: 12px;
-+ height: 12px;
-+ }
-+ .titlebar-button:hover:-moz-lwtheme {
-+ background-color: Highlight;
-+ }
-+
- /* Render titlebar command buttons according to system config.
- * Use full scale icons here as the Gtk+ does.
- */
- @media (-moz-gtk-csd-minimize-button) {
-- #titlebar-min {
-- -moz-appearance: -moz-window-button-minimize;
-+ #titlebar-min:not(:-moz-lwtheme) {
-+ -moz-appearance: -moz-window-button-minimize;
-+ }
-+ #titlebar-min:-moz-lwtheme {
-+ -moz-appearance: none !important;
-+ list-style-image: url(chrome://browser/skin/window-controls/minimize-themes.svg);
- }
- }
- @media (-moz-gtk-csd-minimize-button: 0) {
-@@ -706,12 +728,20 @@ notification[value="translation"] menuli
- }
-
- @media (-moz-gtk-csd-maximize-button) {
-- #titlebar-max {
-+ #titlebar-max:not(:-moz-lwtheme) {
- -moz-appearance: -moz-window-button-maximize;
- }
-- :root[sizemode="maximized"] #titlebar-max {
-+ #titlebar-max:-moz-lwtheme {
-+ -moz-appearance: none !important;
-+ list-style-image: url(chrome://browser/skin/window-controls/maximize-themes.svg);
-+ }
-+ :root[sizemode="maximized"] #titlebar-max:not(:-moz-lwtheme) {
- -moz-appearance: -moz-window-button-restore;
- }
-+ :root[sizemode="maximized"] #titlebar-max:-moz-lwtheme {
-+ -moz-appearance: none !important;
-+ list-style-image: url(chrome://browser/skin/window-controls/restore-themes.svg);
-+ }
- }
- @media (-moz-gtk-csd-maximize-button: 0) {
- #titlebar-max {
-@@ -720,9 +750,13 @@ notification[value="translation"] menuli
- }
-
- @media (-moz-gtk-csd-close-button) {
-- #titlebar-close {
-+ #titlebar-close:not(:-moz-lwtheme) {
- -moz-appearance: -moz-window-button-close;
- }
-+ #titlebar-close:-moz-lwtheme {
-+ -moz-appearance: none !important;
-+ list-style-image: url(chrome://browser/skin/window-controls/close-themes.svg);
-+ }
- }
- @media (-moz-gtk-csd-close-button: 0) {
- #titlebar-close {
-diff -up firefox-60.0/browser/themes/linux/jar.mn.1424422 firefox-60.0/browser/themes/linux/jar.mn
---- firefox-60.0/browser/themes/linux/jar.mn.1424422 2018-04-26 22:07:20.000000000 +0200
-+++ firefox-60.0/browser/themes/linux/jar.mn 2018-04-30 11:45:40.388172492 +0200
-@@ -49,9 +49,12 @@ browser.jar:
- * skin/classic/browser/preferences/in-content/dialog.css (preferences/in-content/dialog.css)
- skin/classic/browser/preferences/applications.css (preferences/applications.css)
- skin/classic/browser/tabbrowser/tabDragIndicator.png (tabbrowser/tabDragIndicator.png)
--
- skin/classic/browser/sync-desktopIcon.svg (../shared/sync-desktopIcon.svg)
- skin/classic/browser/sync-mobileIcon.svg (../shared/sync-mobileIcon.svg)
-+ skin/classic/browser/window-controls/close-themes.svg (window-controls/close-themes.svg)
-+ skin/classic/browser/window-controls/maximize-themes.svg (window-controls/maximize-themes.svg)
-+ skin/classic/browser/window-controls/minimize-themes.svg (window-controls/minimize-themes.svg)
-+ skin/classic/browser/window-controls/restore-themes.svg (window-controls/restore-themes.svg)
- skin/classic/browser/e10s-64@2x.png (../shared/e10s-64@2x.png)
-
- [extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}] chrome.jar:
-diff -up firefox-60.0/browser/themes/linux/window-controls/close-themes.svg.1424422 firefox-60.0/browser/themes/linux/window-controls/close-themes.svg
---- firefox-60.0/browser/themes/linux/window-controls/close-themes.svg.1424422 2018-04-30 11:45:40.388172492 +0200
-+++ firefox-60.0/browser/themes/linux/window-controls/close-themes.svg 2018-04-30 11:45:40.388172492 +0200
-@@ -0,0 +1,7 @@
-+
-+
-diff -up firefox-60.0/browser/themes/linux/window-controls/maximize-themes.svg.1424422 firefox-60.0/browser/themes/linux/window-controls/maximize-themes.svg
---- firefox-60.0/browser/themes/linux/window-controls/maximize-themes.svg.1424422 2018-04-30 11:45:40.388172492 +0200
-+++ firefox-60.0/browser/themes/linux/window-controls/maximize-themes.svg 2018-04-30 11:45:40.388172492 +0200
-@@ -0,0 +1,7 @@
-+
-+
-diff -up firefox-60.0/browser/themes/linux/window-controls/minimize-themes.svg.1424422 firefox-60.0/browser/themes/linux/window-controls/minimize-themes.svg
---- firefox-60.0/browser/themes/linux/window-controls/minimize-themes.svg.1424422 2018-04-30 11:45:40.388172492 +0200
-+++ firefox-60.0/browser/themes/linux/window-controls/minimize-themes.svg 2018-04-30 11:45:40.388172492 +0200
-@@ -0,0 +1,7 @@
-+
-+
-diff -up firefox-60.0/browser/themes/linux/window-controls/restore-themes.svg.1424422 firefox-60.0/browser/themes/linux/window-controls/restore-themes.svg
---- firefox-60.0/browser/themes/linux/window-controls/restore-themes.svg.1424422 2018-04-30 11:45:40.388172492 +0200
-+++ firefox-60.0/browser/themes/linux/window-controls/restore-themes.svg 2018-04-30 11:45:40.388172492 +0200
-@@ -0,0 +1,8 @@
-+
-+
diff --git a/mozilla-1436242.patch b/mozilla-1436242.patch
deleted file mode 100644
index 570b7c5..0000000
--- a/mozilla-1436242.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-
-# HG changeset patch
-# User Jed Davis
-# Date 1526943705 21600
-# Node ID 6bb3adfa15c6877f7874429462dad88f8c978c4f
-# Parent 4c71c8454879c841871ecf3afb7dbdc96bad97fc
-Bug 1436242 - Avoid undefined behavior in IPC fd-passing code. r=froydnj
-
-MozReview-Commit-ID: 3szIPUssgF5
-
-diff --git a/ipc/chromium/src/chrome/common/ipc_channel_posix.cc b/ipc/chromium/src/chrome/common/ipc_channel_posix.cc
---- a/ipc/chromium/src/chrome/common/ipc_channel_posix.cc
-+++ b/ipc/chromium/src/chrome/common/ipc_channel_posix.cc
-@@ -418,20 +418,37 @@ bool Channel::ChannelImpl::ProcessIncomi
- const int* fds;
- unsigned num_fds;
- unsigned fds_i = 0; // the index of the first unused descriptor
-
- if (input_overflow_fds_.empty()) {
- fds = wire_fds;
- num_fds = num_wire_fds;
- } else {
-- const size_t prev_size = input_overflow_fds_.size();
-- input_overflow_fds_.resize(prev_size + num_wire_fds);
-- memcpy(&input_overflow_fds_[prev_size], wire_fds,
-- num_wire_fds * sizeof(int));
-+ // This code may look like a no-op in the case where
-+ // num_wire_fds == 0, but in fact:
-+ //
-+ // 1. wire_fds will be nullptr, so passing it to memcpy is
-+ // undefined behavior according to the C standard, even though
-+ // the memcpy length is 0.
-+ //
-+ // 2. prev_size will be an out-of-bounds index for
-+ // input_overflow_fds_; this is undefined behavior according to
-+ // the C++ standard, even though the element only has its
-+ // pointer taken and isn't accessed (and the corresponding
-+ // operation on a C array would be defined).
-+ //
-+ // UBSan makes #1 a fatal error, and assertions in libstdc++ do
-+ // the same for #2 if enabled.
-+ if (num_wire_fds > 0) {
-+ const size_t prev_size = input_overflow_fds_.size();
-+ input_overflow_fds_.resize(prev_size + num_wire_fds);
-+ memcpy(&input_overflow_fds_[prev_size], wire_fds,
-+ num_wire_fds * sizeof(int));
-+ }
- fds = &input_overflow_fds_[0];
- num_fds = input_overflow_fds_.size();
- }
-
- // The data for the message we're currently reading consists of any data
- // stored in incoming_message_ followed by data in input_buf_ (followed by
- // other messages).
-
-
diff --git a/mozilla-1512162.patch b/mozilla-1512162.patch
index a324372..99a0b14 100644
--- a/mozilla-1512162.patch
+++ b/mozilla-1512162.patch
@@ -1,8 +1,26 @@
-diff --git a/js/xpconnect/src/XPCWrappedNative.cpp b/js/xpconnect/src/XPCWrappedNative.cpp
---- a/js/xpconnect/src/XPCWrappedNative.cpp
-+++ b/js/xpconnect/src/XPCWrappedNative.cpp
-@@ -1145,6 +1145,10 @@
- return CallMethodHelper(ccx).Call();
+diff -up firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp.1512162 firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp
+--- firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp.1512162 2019-07-17 22:51:30.000000000 +0200
++++ firefox-68.0.1/js/xpconnect/src/XPCWrappedNative.cpp 2019-07-25 08:08:18.512528313 +0200
+@@ -1092,7 +1092,7 @@ class MOZ_STACK_CLASS CallMethodHelper f
+ MOZ_ALWAYS_INLINE bool GetOutParamSource(uint8_t paramIndex,
+ MutableHandleValue srcp) const;
+
+- MOZ_ALWAYS_INLINE bool GatherAndConvertResults();
++ bool GatherAndConvertResults();
+
+ MOZ_ALWAYS_INLINE bool QueryInterfaceFastPath();
+
+@@ -1139,7 +1139,7 @@ class MOZ_STACK_CLASS CallMethodHelper f
+
+ ~CallMethodHelper();
+
+- MOZ_ALWAYS_INLINE bool Call();
++ bool Call();
+
+ // Trace implementation so we can put our CallMethodHelper in a Rooted.
+ void trace(JSTracer* aTrc);
+@@ -1157,6 +1157,10 @@ bool XPCWrappedNative::CallMethod(XPCCal
+ return helper.get().Call();
}
+#if (__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
@@ -12,7 +30,7 @@ diff --git a/js/xpconnect/src/XPCWrappedNative.cpp b/js/xpconnect/src/XPCWrapped
bool CallMethodHelper::Call() {
mCallContext.SetRetVal(JS::UndefinedValue());
-@@ -1318,6 +1322,10 @@
+@@ -1315,6 +1319,10 @@ bool CallMethodHelper::GetOutParamSource
return true;
}
diff --git a/mozilla-1566876-webrtc-ind.patch b/mozilla-1566876-webrtc-ind.patch
new file mode 100644
index 0000000..598f58f
--- /dev/null
+++ b/mozilla-1566876-webrtc-ind.patch
@@ -0,0 +1,36 @@
+diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
+--- a/widget/gtk/nsWindow.cpp
++++ b/widget/gtk/nsWindow.cpp
+@@ -3504,12 +3504,6 @@
+ mBounds = aRect;
+ ConstrainSize(&mBounds.width, &mBounds.height);
+
+- // eWindowType_child is not supported on Wayland. Just switch to toplevel
+- // as a workaround.
+- if (!mIsX11Display && mWindowType == eWindowType_child) {
+- mWindowType = eWindowType_toplevel;
+- }
+-
+ // figure out our parent window
+ GtkWidget* parentMozContainer = nullptr;
+ GtkContainer* parentGtkContainer = nullptr;
+@@ -3543,6 +3537,18 @@
+ topLevelParent = GTK_WINDOW(gtk_widget_get_toplevel(parentMozContainer));
+ }
+
++ if (!mIsX11Display) {
++ if (mWindowType == eWindowType_child) {
++ // eWindowType_child is not supported on Wayland. Just switch to toplevel
++ // as a workaround.
++ mWindowType = eWindowType_toplevel;
++ } else if (mWindowType == eWindowType_popup && !topLevelParent) {
++ // Workaround for Wayland where the popup windows always need to have
++ // parent window. For example webrtc ui is a popup window without parent.
++ mWindowType = eWindowType_toplevel;
++ }
++ }
++
+ // ok, create our windows
+ switch (mWindowType) {
+ case eWindowType_dialog:
+
diff --git a/mozilla-1568569.patch b/mozilla-1568569.patch
new file mode 100644
index 0000000..ab6225a
--- /dev/null
+++ b/mozilla-1568569.patch
@@ -0,0 +1,73 @@
+diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
+--- a/widget/gtk/nsWindow.cpp
++++ b/widget/gtk/nsWindow.cpp
+@@ -3238,16 +3238,18 @@ void nsWindow::OnWindowStateEvent(GtkWid
+ // We don't care about anything but changes in the maximized/icon/fullscreen
+ // states
+ if ((aEvent->changed_mask &
+ (GDK_WINDOW_STATE_ICONIFIED | GDK_WINDOW_STATE_MAXIMIZED |
+ GDK_WINDOW_STATE_FULLSCREEN)) == 0) {
+ return;
+ }
+
++ nsSizeMode lastSizeState = mSizeState;
++
+ if (aEvent->new_window_state & GDK_WINDOW_STATE_ICONIFIED) {
+ LOG(("\tIconified\n"));
+ mSizeState = nsSizeMode_Minimized;
+ #ifdef ACCESSIBILITY
+ DispatchMinimizeEventAccessible();
+ #endif // ACCESSIBILITY
+ } else if (aEvent->new_window_state & GDK_WINDOW_STATE_FULLSCREEN) {
+ LOG(("\tFullscreen\n"));
+@@ -3261,16 +3263,28 @@ void nsWindow::OnWindowStateEvent(GtkWid
+ } else {
+ LOG(("\tNormal\n"));
+ mSizeState = nsSizeMode_Normal;
+ #ifdef ACCESSIBILITY
+ DispatchRestoreEventAccessible();
+ #endif // ACCESSIBILITY
+ }
+
++ // Fullscreen video playback may generate bogus alpha values which blends
++ // with desktop background in fullscreen video playback (Bug 1568569).
++ // As a workaround enable to draw mShell background in fullscreen mode
++ // if we draw to mContainer.
++ if (gtk_widget_get_has_window(GTK_WIDGET(mContainer))) {
++ if (mSizeState == nsSizeMode_Fullscreen) {
++ gtk_widget_set_app_paintable(mShell, FALSE);
++ } else if (lastSizeState == nsSizeMode_Fullscreen) {
++ gtk_widget_set_app_paintable(mShell, TRUE);
++ }
++ }
++
+ if (mWidgetListener) {
+ mWidgetListener->SizeModeChanged(mSizeState);
+ if (aEvent->changed_mask & GDK_WINDOW_STATE_FULLSCREEN) {
+ mWidgetListener->FullscreenChanged(aEvent->new_window_state &
+ GDK_WINDOW_STATE_FULLSCREEN);
+ }
+ }
+
+@@ -3787,16 +3801,21 @@ nsresult nsWindow::Create(nsIWidget* aPa
+ eventWidget = (drawToContainer) ? container : mShell;
+
+ // Prevent GtkWindow from painting a background to avoid flickering.
+ gtk_widget_set_app_paintable(eventWidget, TRUE);
+
+ gtk_widget_add_events(eventWidget, kEvents);
+ if (drawToContainer) {
+ gtk_widget_add_events(mShell, GDK_PROPERTY_CHANGE_MASK);
++ // Don't paint mShell background when we draw to mContainer.
++ // Otherwise we see mShell backround to shine through
++ // mContainer (Bug 1507608).
++ // But it may also lead to various bugs where mContainer has unintended
++ // transparent parts which blend with underlying desktop (Bug 1516224).
+ gtk_widget_set_app_paintable(mShell, TRUE);
+ }
+ if (mTransparencyBitmapForTitlebar) {
+ moz_container_force_default_visual(mContainer);
+ }
+
+ // If we draw to mContainer window then configure it now because
+ // gtk_container_add() realizes the child widget.
diff --git a/mozilla-256180.patch b/mozilla-256180.patch
deleted file mode 100644
index a6b3320..0000000
--- a/mozilla-256180.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- layout/generic/nsIFrame.h.old 2016-07-11 13:41:39.688276559 +0200
-+++ layout/generic/nsIFrame.h 2016-07-11 13:42:12.791406976 +0200
-@@ -13,7 +13,7 @@
- #error This header/class should only be used within GNU code. It should not be used by extensions.
- #endif
-
--#define MAX_REFLOW_DEPTH 200
-+#define MAX_REFLOW_DEPTH 1000
-
- /* nsIFrame is in the process of being deCOMtaminated, i.e., this file is
- eventually going to be eliminated, and all callers will use nsFrame instead.
diff --git a/node-stdout-nonblocking-wrapper b/node-stdout-nonblocking-wrapper
new file mode 100755
index 0000000..b2814b8
--- /dev/null
+++ b/node-stdout-nonblocking-wrapper
@@ -0,0 +1,2 @@
+#!/bin/sh
+exec /usr/bin/node "$@" 2>&1 | cat -
diff --git a/rhbz-1354671.patch b/rhbz-1354671.patch
index f45f7e9..1f867eb 100644
--- a/rhbz-1354671.patch
+++ b/rhbz-1354671.patch
@@ -1,7 +1,7 @@
-diff -up firefox-53.0/layout/base/nsIPresShell.h.1354671 firefox-53.0/layout/base/nsIPresShell.h
---- firefox-53.0/layout/base/nsIPresShell.h.1354671 2017-04-27 13:07:43.808653320 +0200
-+++ firefox-53.0/layout/base/nsIPresShell.h 2017-04-27 13:09:40.404427641 +0200
-@@ -204,7 +204,7 @@
+diff -up firefox-65.0/layout/base/PresShell.h.1354671 firefox-65.0/layout/base/PresShell.h
+--- firefox-65.0/layout/base/PresShell.h.1354671 2019-01-29 11:50:08.516649643 +0100
++++ firefox-65.0/layout/base/PresShell.h 2019-01-29 11:51:48.930258629 +0100
+@@ -205,7 +205,7 @@ class nsIPresShell : public nsStubDocume
* to the same aSize value. AllocateFrame is infallible and will abort
* on out-of-memory.
*/
diff --git a/sources b/sources
index e5e5f07..94b72d4 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,4 @@
-SHA512 (icecat-60.8.0-gnu1.tar.bz2) = 31900c921102ccaa736b8be20210d16b7bae9c797d2529e9f38e803d834c72bacfe6e586934e21c48ca7097cc0bbc56adccc6beefc5f42b1e7ee4a3d93e9f223
-SHA512 (icecat-60.8.0-langpacks.tar.gz) = 82f63a5c0e7b4af8ed616d94f99274c4a54fa092147bcce3eb4f77026b562a8109cc289fec18abdf0e350484a8645eb32f173fbbe3e20cb12f8fb79cea52554b
+SHA512 (cbindgen-vendor.tar.xz) = b0df3a8624efc488726211c99ac8a69c928d0bef24c2f7eafc6971be7ce2fafd54fba9330afd7e61ffe3a0d799bc5d994fa9f11f2da88cd93924c9347bfc4355
+SHA512 (icecat-68.0.2-gnu1.tar.bz2) = d19750166d1f68c6a4c6de6a73515954c17c325dff92352b77fa73f535cfcb9452502d62f74d5f9deee172b71aa81617d691600dd56a24cc4b35e4acc30a7946
+SHA512 (icecat-68.0.2-langpacks.tar.gz) = 4361c78b48ef0a9792d0fdba03c2ea7c4f880ba083d62e5ca83c9f65ec4cc3917b4020ebe16bb1a07faa780633c8e25aa7369f289ff54c0472158f993e703f1f
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From 86ee812901a4aa7cd80fd7fe1accba429465cf27 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Fri, 16 Aug 2019 22:45:35 +0200
Subject: [PATCH 043/473] Conditional arch macro for --disable-eme option
---
icecat.spec | 2 ++
1 file changed, 2 insertions(+)
diff --git a/icecat.spec b/icecat.spec
index cd4bb55..84cbf70 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -422,7 +422,9 @@ echo "ac_add_options --without-system-libvpx" >> .mozconfig
echo "ac_add_options --disable-libjpeg-turbo" >> .mozconfig
echo "ac_add_options --with-system-jpeg" >> .mozconfig
echo "ac_add_options --disable-crashreporter" >> .mozconfig
+%ifnarch %{power64} aarch64
echo "ac_add_options --disable-eme" >> .mozconfig
+%endif
# This option works on these architectures only
%ifarch %{ix86} x86_64 %{arm}
From b52d6c52285496e8a98290bff848b338b1cd5f3e Mon Sep 17 00:00:00 2001
From: sagitter
Date: Fri, 16 Aug 2019 23:01:41 +0200
Subject: [PATCH 044/473] Disable s390x builds
---
icecat.spec | 2 ++
1 file changed, 2 insertions(+)
diff --git a/icecat.spec b/icecat.spec
index 84cbf70..1ff75e3 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -75,6 +75,8 @@
# Exclude ARM builds for rhbz #1658940
ExcludeArch: %{arm}
+# Disabled due to https://pagure.io/fedora-infrastructure/issue/7581
+ExcludeArch: s390x
# Set new source-code build version
%global gnu_ver gnu1
From 017c32fd9f6786fdd0b48c678beb66935866a563 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 17 Aug 2019 12:26:06 +0200
Subject: [PATCH 045/473] Add --with-system-nspr option explicitely
---
icecat.spec | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/icecat.spec b/icecat.spec
index 1ff75e3..d6b3804 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -398,7 +398,11 @@ echo "ac_add_options --disable-jemalloc" >> .mozconfig
%if 0%{?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-nspr" >> .mozconfig
echo "ac_add_options --with-system-nss" >>.mozconfig
+%else
+echo "ac_add_options --without-system-nspr" >> .mozconfig
+echo "ac_add_options --without-system-nss" >>.mozconfig
%endif
%if 0%{?system_libicu}
echo "ac_add_options --with-system-icu" >> .mozconfig
From 6e889e0b5fc7e03230604d4fcfb5cea8f076a9f8 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 17 Aug 2019 12:51:12 +0200
Subject: [PATCH 046/473] Remove NSPR flags specifications
---
icecat.spec | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/icecat.spec b/icecat.spec
index d6b3804..c71a0de 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -396,13 +396,11 @@ echo "ac_add_options --disable-jemalloc" >> .mozconfig
%endif
%if 0%{?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-nspr" >> .mozconfig
-echo "ac_add_options --with-system-nss" >>.mozconfig
+echo "ac_add_options --with-system-nss" >> .mozconfig
%else
echo "ac_add_options --without-system-nspr" >> .mozconfig
-echo "ac_add_options --without-system-nss" >>.mozconfig
+echo "ac_add_options --without-system-nss" >> .mozconfig
%endif
%if 0%{?system_libicu}
echo "ac_add_options --with-system-icu" >> .mozconfig
From 8ef0a9f8e136b0a909978034deb06b507dfe35e2 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 17 Aug 2019 14:24:44 +0200
Subject: [PATCH 047/473] Exclude build-jit-atomic-always-lucky patch
---
icecat.spec | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/icecat.spec b/icecat.spec
index c71a0de..57f3976 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -135,6 +135,7 @@ Patch1: %{name}-fix_addon_installation.patch
Patch2: %{name}-libevent_linkflag.patch
Patch3: mozilla-build-arm.patch
Patch4: build-rust-ppc64le.patch
+Patch5: rhbz-1219542-s390-build.patch
# Unrecognized file?
Patch7: %{name}-fix_jar.patch
@@ -323,10 +324,10 @@ to run GNU IceCat natively on Wayland.
%autosetup -N -n %{name}-%{version}
#Fix permissions
-#find . -type f -name "*.h" -exec chmod 0644 '{}' \;
-#find . -type f -name "*.cpp" -exec chmod 0644 '{}' \;
-#find . -type f -name "*.cc" -exec chmod 0644 '{}' \;
-#find . -type f -name "*.c" -exec chmod 0644 '{}' \;
+find . -type f -name "*.h" -exec chmod 0644 '{}' \;
+find . -type f -name "*.cpp" -exec chmod 0644 '{}' \;
+find . -type f -name "*.cc" -exec chmod 0644 '{}' \;
+find . -type f -name "*.c" -exec chmod 0644 '{}' \;
##Copy license files
tar -xf %{SOURCE5}
@@ -334,10 +335,13 @@ tar -xf %{SOURCE5}
%patch1 -p1 -b .fix_addon_installation
%patch2 -p0 -b .libevent_linkflag
%patch3 -p1 -b .arm
+%ifarch s390
+%patch5 -p1 -b .rhbz-1219542-s390
+%endif
%patch7 -p0 -b .fix_jar
%patch8 -p0 -b .fix_installer
-%patch37 -p1 -b .jit-atomic-lucky
+#%%patch37 -p1 -b .jit-atomic-lucky
# Fedora patches
%patch219 -p1 -b .rhbz-1173156
From 77430088e3ffee7aef18f78e034f8678a122125c Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 17 Aug 2019 15:06:10 +0200
Subject: [PATCH 048/473] Push rhbz-1219542-s390-build patch
---
icecat.spec | 34 +++++++++++++++++-----------------
rhbz-1219542-s390-build.patch | 23 +++++++++++++++++++++++
2 files changed, 40 insertions(+), 17 deletions(-)
create mode 100644 rhbz-1219542-s390-build.patch
diff --git a/icecat.spec b/icecat.spec
index 57f3976..dce78c7 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -1,34 +1,34 @@
##Active/Deactive language files handling
%global build_langpacks 1
-%define default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html
+%global 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}
+%global icecatappdir %{_libdir}/%{name}
+%global icecat_ver %{name}-%{version}
+%global icecat_devel %{name}-devel-%{version}
##Define language files directory
-%global langpackdir %{icecatappdir}/langpacks
+%global langpackdir %{icecatappdir}/langpacks
-%global toolkit_gtk3 1
+%global toolkit_gtk3 1
# Builds for debugging
-%global debug_build 0
+%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
+%global big_endian 1
%endif
# Use system sqlite?
# sqlite > 3.28.0 unavailable on Fedora < 31
%if 0%{?fedora} < 31
-%global system_sqlite 0
+%global system_sqlite 0
%else
-%global system_sqlite 1
+%global system_sqlite 1
%endif
%if 0%{?system_sqlite}
@@ -38,10 +38,10 @@
%endif
# Use system libicu?
-%global system_libicu 1
+%global system_libicu 1
# Use system nspr/nss?
-%global system_nss 1
+%global system_nss 1
%if 0%{?system_nss}
%global nspr_version 4.19
@@ -65,10 +65,10 @@
%endif
# Use mozilla hardening option?
-%global hardened_build 1
+%global hardened_build 1
# cbingen
-%global use_bundled_cbindgen 1
+%global use_bundled_cbindgen 1
# Use clang?
%global build_with_clang 0
@@ -81,14 +81,14 @@ ExcludeArch: s390x
# Set new source-code build version
%global gnu_ver gnu1
-Name: icecat
+Name: icecat
Version: 68.0.2
Release: 1.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
# 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/
+URL: http://www.gnu.org/software/gnuzilla/
## Source archive created by scripts based on Gnuzilla files.
## Modified files are hosted in a dedicated fork repository:
@@ -135,7 +135,7 @@ Patch1: %{name}-fix_addon_installation.patch
Patch2: %{name}-libevent_linkflag.patch
Patch3: mozilla-build-arm.patch
Patch4: build-rust-ppc64le.patch
-Patch5: rhbz-1219542-s390-build.patch
+Patch5: rhbz-1219542-s390-build.patch
# Unrecognized file?
Patch7: %{name}-fix_jar.patch
diff --git a/rhbz-1219542-s390-build.patch b/rhbz-1219542-s390-build.patch
new file mode 100644
index 0000000..f94e43a
--- /dev/null
+++ b/rhbz-1219542-s390-build.patch
@@ -0,0 +1,23 @@
+diff -up firefox-55.0/js/src/old-configure.in.rhbz-1219542-s390 firefox-55.0/js/src/old-configure.in
+--- firefox-55.0/js/src/old-configure.in.rhbz-1219542-s390 2017-07-31 18:20:48.000000000 +0200
++++ firefox-55.0/js/src/old-configure.in 2017-08-02 14:31:32.190243669 +0200
+@@ -541,7 +541,7 @@ case "$host" in
+
+ *-linux*|*-kfreebsd*-gnu|*-gnu*)
+ HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
+- HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
++ HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O1}"
+ ;;
+
+ *)
+@@ -617,8 +617,8 @@ case "$target" in
+
+ *-*linux*)
+ if test "$GNU_CC" -o "$GNU_CXX"; then
+- MOZ_PGO_OPTIMIZE_FLAGS="-O3"
+- MOZ_OPTIMIZE_FLAGS="-O3"
++ MOZ_PGO_OPTIMIZE_FLAGS="-O1"
++ MOZ_OPTIMIZE_FLAGS="-O1"
+ if test -z "$CLANG_CC"; then
+ MOZ_OPTIMIZE_FLAGS="-freorder-blocks $MOZ_OPTIMIZE_FLAGS"
+ fi
From 9c9a59feb457e08ba84a99d0d599c52897b6b3b3 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 17 Aug 2019 18:52:27 +0200
Subject: [PATCH 049/473] Some superfluous changes
---
icecat.spec | 180 ++++++++++++++++++++++++++--------------------------
1 file changed, 90 insertions(+), 90 deletions(-)
diff --git a/icecat.spec b/icecat.spec
index dce78c7..6a2c207 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -131,29 +131,29 @@ Source18: node-stdout-nonblocking-wrapper
# Build patches
# Fixes installation of those addons which don't have ID on IceCat ("Cannot find id for addon" error).
-Patch1: %{name}-fix_addon_installation.patch
-Patch2: %{name}-libevent_linkflag.patch
-Patch3: mozilla-build-arm.patch
-Patch4: build-rust-ppc64le.patch
-Patch5: rhbz-1219542-s390-build.patch
+Patch1: %{name}-fix_addon_installation.patch
+Patch2: %{name}-libevent_linkflag.patch
+Patch3: mozilla-build-arm.patch
+Patch4: build-rust-ppc64le.patch
+Patch5: rhbz-1219542-s390-build.patch
# Unrecognized file?
-Patch7: %{name}-fix_jar.patch
+Patch7: %{name}-fix_jar.patch
# Fix files list for installer
-Patch8: %{name}-fix_installer.patch
+Patch8: %{name}-fix_installer.patch
# xlocale.h not provided by glibc-headers
# Set path of libcxx-devel
-Patch9: %{name}-locale.patch
+Patch9: %{name}-locale.patch
-Patch26: build-icu-big-endian.patch
+Patch26: build-icu-big-endian.patch
# Also fixes s390x: https://bugzilla.mozilla.org/show_bug.cgi?id=1376268
-Patch29: build-big-endian.patch
+Patch29: build-big-endian.patch
# Always feel lucky for unsupported platforms:
# https://bugzilla.mozilla.org/show_bug.cgi?id=1347128
-Patch37: build-jit-atomic-always-lucky.patch
+Patch37: build-jit-atomic-always-lucky.patch
# Fedora specific patches
Patch219: rhbz-1173156.patch
@@ -175,107 +175,107 @@ Patch425: mozilla-1568569.patch
Patch565: firefox-pipewire.patch
#
-BuildRequires: alsa-lib-devel
-BuildRequires: autoconf213
-BuildRequires: bzip2-devel
-BuildRequires: cairo-devel
-BuildRequires: cargo
+BuildRequires: alsa-lib-devel
+BuildRequires: autoconf213
+BuildRequires: bzip2-devel
+BuildRequires: cairo-devel
+BuildRequires: cargo
%if !0%{?use_bundled_cbindgen}
-BuildRequires: cbindgen
+BuildRequires: cbindgen
%endif
-BuildRequires: ccache
-BuildRequires: dbus-devel
-BuildRequires: dbus-glib-devel
-BuildRequires: dconf
-BuildRequires: desktop-file-utils
-BuildRequires: dos2unix
-BuildRequires: gcc, gcc-c++
-BuildRequires: fedora-bookmarks
-BuildRequires: freetype-devel
-BuildRequires: gdk-pixbuf2
-BuildRequires: glib2-devel
-BuildRequires: pkgconfig(gtk+-2.0)
+BuildRequires: ccache
+BuildRequires: dbus-devel
+BuildRequires: dbus-glib-devel
+BuildRequires: dconf
+BuildRequires: desktop-file-utils
+BuildRequires: dos2unix
+BuildRequires: gcc, gcc-c++
+BuildRequires: fedora-bookmarks
+BuildRequires: freetype-devel
+BuildRequires: gdk-pixbuf2
+BuildRequires: glib2-devel
+BuildRequires: pkgconfig(gtk+-2.0)
%if 0%{?toolkit_gtk3}
-BuildRequires: pkgconfig(gtk+-3.0)
+BuildRequires: pkgconfig(gtk+-3.0)
%endif
-BuildRequires: gstreamer1-devel
-BuildRequires: gstreamer1-plugins-base-devel
-BuildRequires: hunspell-devel
-BuildRequires: ImageMagick, autotrace
-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: gstreamer1-devel
+BuildRequires: gstreamer1-plugins-base-devel
+BuildRequires: hunspell-devel
+BuildRequires: ImageMagick, autotrace
+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
%if 0%{?with_vpx}
-BuildRequires: libvpx-devel
+BuildRequires: libvpx-devel
%endif
-BuildRequires: libzip-devel
-BuildRequires: mesa-libGL-devel
-BuildRequires: nodejs
-BuildRequires: nasm >= 1.13
-BuildRequires: strace
+BuildRequires: libzip-devel
+BuildRequires: mesa-libGL-devel
+BuildRequires: nodejs
+BuildRequires: nasm >= 1.13
+BuildRequires: strace
%if 0%{?system_nss}
-BuildRequires: pkgconfig(nspr) >= %{nspr_version}
-BuildRequires: pkgconfig(nss) >= %{nss_version}
-BuildRequires: nss-static >= %{nss_version}
+BuildRequires: pkgconfig(nspr) >= %{nspr_version}
+BuildRequires: pkgconfig(nss) >= %{nss_version}
+BuildRequires: nss-static >= %{nss_version}
%endif
-BuildRequires: openjpeg-devel
-BuildRequires: pango-devel
-BuildRequires: pipewire-devel
-BuildRequires: python2-devel
-BuildRequires: pkgconfig(gconf-2.0)
-BuildRequires: pkgconfig(xrender)
-BuildRequires: pkgconfig(libstartup-notification-1.0)
-BuildRequires: pkgconfig(dri)
-BuildRequires: pkgconfig(libcurl)
+BuildRequires: openjpeg-devel
+BuildRequires: pango-devel
+BuildRequires: pipewire-devel
+BuildRequires: python2-devel
+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
+BuildRequires: pulseaudio-libs-devel
%endif
%if %{with jack}
-BuildRequires: jack-audio-connection-kit-devel
+BuildRequires: jack-audio-connection-kit-devel
%endif
-BuildRequires: yasm
-BuildRequires: llvm
-BuildRequires: llvm-devel
-BuildRequires: clang
-BuildRequires: clang-libs
-BuildRequires: clang-devel
+BuildRequires: yasm
+BuildRequires: llvm
+BuildRequires: llvm-devel
+BuildRequires: clang
+BuildRequires: clang-libs
+BuildRequires: clang-devel
%if 0%{?build_with_clang}
-BuildRequires: lld
+BuildRequires: lld
%endif
-BuildRequires: rust
+BuildRequires: rust
%if 0%{?system_sqlite}
-BuildRequires: pkgconfig(sqlite3) >= %{sqlite_version}
-Requires: sqlite >= %{sqlite_build_version}
+BuildRequires: pkgconfig(sqlite3) >= %{sqlite_version}
+Requires: sqlite >= %{sqlite_build_version}
%endif
-Requires: dconf
-Requires: mozilla-filesystem
-Requires: p11-kit-trust
+Requires: dconf
+Requires: mozilla-filesystem
+Requires: p11-kit-trust
%if 0%{?system_nss}
-Requires: nspr >= %{nspr_build_version}
-Requires: nss >= %{nss_build_version}
+Requires: nspr >= %{nspr_build_version}
+Requires: nss >= %{nss_build_version}
%endif
-Requires: fedora-bookmarks
-Suggests: mozilla-ublock-origin
+Requires: fedora-bookmarks
+Suggests: mozilla-ublock-origin
-Provides: webclient
-Provides: mozilla-https-everywhere = 20190131
+Provides: webclient
+Provides: mozilla-https-everywhere = 20190131
%description
GNUZilla Icecat is a fully-free fork of Mozilla Firefox ESR.
@@ -360,7 +360,7 @@ tar -xf %{SOURCE5}
# Patch for big endian platforms only
%if 0%{?big_endian}
%patch26 -p1 -b .icu
-%patch9 -p0 -b .locale
+%patch9 -p0 -b .locale
%patch29 -p1 -b .big-endian
%endif
From ab140500192ae8a63071145107dc9fbbfb5d19f3 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 17 Aug 2019 19:11:36 +0200
Subject: [PATCH 050/473] Rebuilt source archive
---
icecat.spec | 8 ++++----
sources | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/icecat.spec b/icecat.spec
index 6a2c207..704e612 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -324,10 +324,10 @@ to run GNU IceCat natively on Wayland.
%autosetup -N -n %{name}-%{version}
#Fix permissions
-find . -type f -name "*.h" -exec chmod 0644 '{}' \;
-find . -type f -name "*.cpp" -exec chmod 0644 '{}' \;
-find . -type f -name "*.cc" -exec chmod 0644 '{}' \;
-find . -type f -name "*.c" -exec chmod 0644 '{}' \;
+#find . -type f -name "*.h" -exec chmod 0644 '{}' \;
+#find . -type f -name "*.cpp" -exec chmod 0644 '{}' \;
+#find . -type f -name "*.cc" -exec chmod 0644 '{}' \;
+#find . -type f -name "*.c" -exec chmod 0644 '{}' \;
##Copy license files
tar -xf %{SOURCE5}
diff --git a/sources b/sources
index 94b72d4..f2b66d0 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
SHA512 (cbindgen-vendor.tar.xz) = b0df3a8624efc488726211c99ac8a69c928d0bef24c2f7eafc6971be7ce2fafd54fba9330afd7e61ffe3a0d799bc5d994fa9f11f2da88cd93924c9347bfc4355
-SHA512 (icecat-68.0.2-gnu1.tar.bz2) = d19750166d1f68c6a4c6de6a73515954c17c325dff92352b77fa73f535cfcb9452502d62f74d5f9deee172b71aa81617d691600dd56a24cc4b35e4acc30a7946
+SHA512 (icecat-68.0.2-gnu1.tar.bz2) = 4709eff6cf6a94a50c326c74955d8732960f459831b14d245853e336d966c341f724b16e1c52ab2c60daa8cb0b15460c67c36fd62847fb936665d9cc799fc56c
SHA512 (icecat-68.0.2-langpacks.tar.gz) = 4361c78b48ef0a9792d0fdba03c2ea7c4f880ba083d62e5ca83c9f65ec4cc3917b4020ebe16bb1a07faa780633c8e25aa7369f289ff54c0472158f993e703f1f
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From 692ae9d0fee6585895c4324ca7b39c7d0a8c25b9 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 17 Aug 2019 21:58:54 +0200
Subject: [PATCH 051/473] Change fix-installer patch
---
icecat-fix_installer.patch | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/icecat-fix_installer.patch b/icecat-fix_installer.patch
index a56a880..1443996 100644
--- a/icecat-fix_installer.patch
+++ b/icecat-fix_installer.patch
@@ -1,6 +1,6 @@
--- browser/installer/package-manifest.orig.in 2017-03-24 21:09:39.027022000 +0100
+++ browser/installer/package-manifest.in 2017-03-24 23:07:21.881504771 +0100
-@@ -74,9 +74,9 @@
+@@ -71,9 +71,9 @@
#endif
#ifndef MOZ_SYSTEM_NSPR
#ifndef MOZ_FOLD_LIBS
@@ -13,23 +13,27 @@
#endif
#endif
#ifdef XP_MACOSX
-@@ -610,11 +610,11 @@
+@@ -239,6 +239,7 @@
+ #endif # MOZ_ANGLE_RENDERER
+
+ ; [Browser Chrome Files]
++@BINPATH@/browser/extensions
+ @BINPATH@/browser/extensions/viewtube@extension/*
+ @BINPATH@/browser/extensions/tprb.addon@searxes.danwin1210.me/*
+ @BINPATH@/browser/extensions/tortm-browser-button@jeremybenthum/*
+@@ -263,9 +264,9 @@
@RESPATH@/chrome/recording.manifest
@RESPATH@/chrome/recording/*
#ifdef MOZ_GTK
-@RESPATH@/browser/chrome/icons/default/default16.png
-@RESPATH@/browser/chrome/icons/default/default32.png
-@RESPATH@/browser/chrome/icons/default/default48.png
--@RESPATH@/browser/chrome/icons/default/default64.png
--@RESPATH@/browser/chrome/icons/default/default128.png
+#@RESPATH@/browser/chrome/icons/default/default16.png
+#@RESPATH@/browser/chrome/icons/default/default32.png
+#@RESPATH@/browser/chrome/icons/default/default48.png
-+@RESPATH@/browser/chrome/icons/default/default64.png
-+@RESPATH@/browser/chrome/icons/default/default128.png
+ @RESPATH@/browser/chrome/icons/default/default64.png
+ @RESPATH@/browser/chrome/icons/default/default128.png
#endif
- @RESPATH@/browser/features/*
-
--- browser/installer/allowed-dupes.orig.mn 2017-03-19 19:59:09.000000000 +0100
+++ browser/installer/allowed-dupes.mn 2017-03-24 23:15:37.026964374 +0100
@@ -752,3 +752,19 @@
From 8ac4fe3cd60b938bf20d5f21eac75df6acbed60f Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 17 Aug 2019 22:00:10 +0200
Subject: [PATCH 052/473] Remove permission commands
---
icecat.spec | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/icecat.spec b/icecat.spec
index 704e612..e3a650d 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -323,13 +323,7 @@ to run GNU IceCat natively on Wayland.
%prep
%autosetup -N -n %{name}-%{version}
-#Fix permissions
-#find . -type f -name "*.h" -exec chmod 0644 '{}' \;
-#find . -type f -name "*.cpp" -exec chmod 0644 '{}' \;
-#find . -type f -name "*.cc" -exec chmod 0644 '{}' \;
-#find . -type f -name "*.c" -exec chmod 0644 '{}' \;
-
-##Copy license files
+# Copy license files
tar -xf %{SOURCE5}
%patch1 -p1 -b .fix_addon_installation
From bf11b85687f647a98d5e4bbdbf66eba941dc0060 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 17 Aug 2019 23:55:41 +0200
Subject: [PATCH 053/473] Rebuilt source archive
---
icecat-fix_installer.patch | 20 ++++++++------------
sources | 2 +-
2 files changed, 9 insertions(+), 13 deletions(-)
diff --git a/icecat-fix_installer.patch b/icecat-fix_installer.patch
index 1443996..a56a880 100644
--- a/icecat-fix_installer.patch
+++ b/icecat-fix_installer.patch
@@ -1,6 +1,6 @@
--- browser/installer/package-manifest.orig.in 2017-03-24 21:09:39.027022000 +0100
+++ browser/installer/package-manifest.in 2017-03-24 23:07:21.881504771 +0100
-@@ -71,9 +71,9 @@
+@@ -74,9 +74,9 @@
#endif
#ifndef MOZ_SYSTEM_NSPR
#ifndef MOZ_FOLD_LIBS
@@ -13,27 +13,23 @@
#endif
#endif
#ifdef XP_MACOSX
-@@ -239,6 +239,7 @@
- #endif # MOZ_ANGLE_RENDERER
-
- ; [Browser Chrome Files]
-+@BINPATH@/browser/extensions
- @BINPATH@/browser/extensions/viewtube@extension/*
- @BINPATH@/browser/extensions/tprb.addon@searxes.danwin1210.me/*
- @BINPATH@/browser/extensions/tortm-browser-button@jeremybenthum/*
-@@ -263,9 +264,9 @@
+@@ -610,11 +610,11 @@
@RESPATH@/chrome/recording.manifest
@RESPATH@/chrome/recording/*
#ifdef MOZ_GTK
-@RESPATH@/browser/chrome/icons/default/default16.png
-@RESPATH@/browser/chrome/icons/default/default32.png
-@RESPATH@/browser/chrome/icons/default/default48.png
+-@RESPATH@/browser/chrome/icons/default/default64.png
+-@RESPATH@/browser/chrome/icons/default/default128.png
+#@RESPATH@/browser/chrome/icons/default/default16.png
+#@RESPATH@/browser/chrome/icons/default/default32.png
+#@RESPATH@/browser/chrome/icons/default/default48.png
- @RESPATH@/browser/chrome/icons/default/default64.png
- @RESPATH@/browser/chrome/icons/default/default128.png
++@RESPATH@/browser/chrome/icons/default/default64.png
++@RESPATH@/browser/chrome/icons/default/default128.png
#endif
+ @RESPATH@/browser/features/*
+
--- browser/installer/allowed-dupes.orig.mn 2017-03-19 19:59:09.000000000 +0100
+++ browser/installer/allowed-dupes.mn 2017-03-24 23:15:37.026964374 +0100
@@ -752,3 +752,19 @@
diff --git a/sources b/sources
index f2b66d0..9444413 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
SHA512 (cbindgen-vendor.tar.xz) = b0df3a8624efc488726211c99ac8a69c928d0bef24c2f7eafc6971be7ce2fafd54fba9330afd7e61ffe3a0d799bc5d994fa9f11f2da88cd93924c9347bfc4355
-SHA512 (icecat-68.0.2-gnu1.tar.bz2) = 4709eff6cf6a94a50c326c74955d8732960f459831b14d245853e336d966c341f724b16e1c52ab2c60daa8cb0b15460c67c36fd62847fb936665d9cc799fc56c
+SHA512 (icecat-68.0.2-gnu1.tar.bz2) = 3d1874097c7f1282b771d43d338949d422d03b7c97bb1f2cdaf089559ec0f20f4efbb2bfc661a6177d00a2254d3d16d78e78c0b8e18ac33f12dd56c9b7e33544
SHA512 (icecat-68.0.2-langpacks.tar.gz) = 4361c78b48ef0a9792d0fdba03c2ea7c4f880ba083d62e5ca83c9f65ec4cc3917b4020ebe16bb1a07faa780633c8e25aa7369f289ff54c0472158f993e703f1f
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From 29f088f455408297ca4bead49b167c54bcbcb981 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sun, 18 Aug 2019 10:22:27 +0200
Subject: [PATCH 054/473] Remove missing font
---
icecat.spec | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/icecat.spec b/icecat.spec
index e3a650d..64517bd 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -323,6 +323,12 @@ to run GNU IceCat natively on Wayland.
%prep
%autosetup -N -n %{name}-%{version}
+# Fix permissions
+find . -type f -name "*.h" -exec chmod 0644 '{}' \;
+find . -type f -name "*.cpp" -exec chmod 0644 '{}' \;
+find . -type f -name "*.cc" -exec chmod 0644 '{}' \;
+find . -type f -name "*.c" -exec chmod 0644 '{}' \;
+
# Copy license files
tar -xf %{SOURCE5}
@@ -771,7 +777,6 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%{icecatappdir}/pingsender
%{icecatappdir}/gmp-clearkey/
%{icecatappdir}/chrome.manifest
-%{icecatappdir}/fonts/EmojiOneMozilla.ttf
%{icecatappdir}/gtk2/*.so
%if !%{?system_nss}
%{icecatappdir}/libfreeblpriv3.chk
From 14ef8c00d1d57b5fc9b2dcaff57af847b55ddf12 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sun, 18 Aug 2019 11:19:22 +0200
Subject: [PATCH 055/473] Add fonts directory under IceCat's private libdir
---
icecat.spec | 1 +
1 file changed, 1 insertion(+)
diff --git a/icecat.spec b/icecat.spec
index 64517bd..1dbcffa 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -768,6 +768,7 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%{icecatappdir}/defaults/
%{icecatappdir}/dictionaries
%{icecatappdir}/icecat*
+%{icecatappdir}/fonts/
%{icecatappdir}/*.so
%{icecatappdir}/*.ini
%{icecatappdir}/omni.ja
From 746e53f56a2c152dd2e9c89d2e2de90bc575d480 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sun, 18 Aug 2019 15:11:04 +0200
Subject: [PATCH 056/473] Add patches for ARMs builds
---
build-aarch64-skia.patch | 46 ++++++++++++++++++++++++++++++++++
build-arm-libopus.patch | 12 +++++++++
build-cacheFlush-missing.patch | 13 ++++++++++
build-disable-elfhack.patch | 12 +++++++++
icecat.spec | 18 ++++++++++---
5 files changed, 98 insertions(+), 3 deletions(-)
create mode 100644 build-aarch64-skia.patch
create mode 100644 build-arm-libopus.patch
create mode 100644 build-cacheFlush-missing.patch
create mode 100644 build-disable-elfhack.patch
diff --git a/build-aarch64-skia.patch b/build-aarch64-skia.patch
new file mode 100644
index 0000000..a00ee70
--- /dev/null
+++ b/build-aarch64-skia.patch
@@ -0,0 +1,46 @@
+diff -up firefox-68.0/gfx/skia/skia/include/private/SkHalf.h.old firefox-68.0/gfx/skia/skia/include/private/SkHalf.h
+--- firefox-68.0/gfx/skia/skia/include/private/SkHalf.h.old 2019-07-11 12:33:40.471936951 +0200
++++ firefox-68.0/gfx/skia/skia/include/private/SkHalf.h 2019-07-11 12:33:50.527913736 +0200
+@@ -40,7 +40,7 @@ static inline Sk4h SkFloatToHalf_finite_
+
+ static inline Sk4f SkHalfToFloat_finite_ftz(uint64_t rgba) {
+ Sk4h hs = Sk4h::Load(&rgba);
+-#if !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64)
++#if 0 // !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64)
+ float32x4_t fs;
+ asm ("fcvtl %[fs].4s, %[hs].4h \n" // vcvt_f32_f16(...)
+ : [fs] "=w" (fs) // =w: write-only NEON register
+@@ -62,7 +62,7 @@ static inline Sk4f SkHalfToFloat_finite_
+ }
+
+ static inline Sk4h SkFloatToHalf_finite_ftz(const Sk4f& fs) {
+-#if !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64)
++#if 0 // !defined(SKNX_NO_SIMD) && defined(SK_CPU_ARM64)
+ float32x4_t vec = fs.fVec;
+ asm ("fcvtn %[vec].4h, %[vec].4s \n" // vcvt_f16_f32(vec)
+ : [vec] "+w" (vec)); // +w: read-write NEON register
+
+diff -up firefox-68.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h.old firefox-68.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h
+--- firefox-68.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h.old 2019-07-11 12:39:08.694166900 +0200
++++ firefox-68.0/gfx/skia/skia/src/opts/SkRasterPipeline_opts.h 2019-07-11 12:39:21.572136328 +0200
+@@ -830,7 +830,7 @@ SI F from_half(U16 h) {
+ }
+
+ SI U16 to_half(F f) {
+-#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
++#if 0 // defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
+ return vcvt_f16_f32(f);
+
+ #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
+diff -up firefox-68.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h.old firefox-68.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h
+--- firefox-68.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h.old 2019-07-11 12:38:45.285222428 +0200
++++ firefox-68.0/gfx/skia/skia/third_party/skcms/src/Transform_inl.h 2019-07-11 12:38:57.414193679 +0200
+@@ -163,7 +163,7 @@ SI F F_from_Half(U16 half) {
+ __attribute__((no_sanitize("unsigned-integer-overflow")))
+ #endif
+ SI U16 Half_from_F(F f) {
+-#if defined(USING_NEON_F16C)
++#if 0 // defined(USING_NEON_F16C)
+ return (U16)vcvt_f16_f32(f);
+ #elif defined(__AVX512F__)
+ return (U16)_mm512_cvtps_ph((__m512 )f, _MM_FROUND_CUR_DIRECTION );
diff --git a/build-arm-libopus.patch b/build-arm-libopus.patch
new file mode 100644
index 0000000..1b3f31b
--- /dev/null
+++ b/build-arm-libopus.patch
@@ -0,0 +1,12 @@
+diff -up firefox-66.0/media/libopus/silk/arm/arm_silk_map.c.old firefox-66.0/media/libopus/silk/arm/arm_silk_map.c
+--- firefox-66.0/media/libopus/silk/arm/arm_silk_map.c.old 2019-03-12 21:07:35.356677522 +0100
++++ firefox-66.0/media/libopus/silk/arm/arm_silk_map.c 2019-03-12 21:07:42.937693394 +0100
+@@ -28,7 +28,7 @@ POSSIBILITY OF SUCH DAMAGE.
+ # include "config.h"
+ #endif
+
+-#include "main_FIX.h"
++#include "fixed/main_FIX.h"
+ #include "NSQ.h"
+ #include "SigProc_FIX.h"
+
diff --git a/build-cacheFlush-missing.patch b/build-cacheFlush-missing.patch
new file mode 100644
index 0000000..51c368c
--- /dev/null
+++ b/build-cacheFlush-missing.patch
@@ -0,0 +1,13 @@
+diff -up firefox-55.0.3/js/src/jit/ExecutableAllocator.h.wasm firefox-55.0.3/js/src/jit/ExecutableAllocator.h
+--- firefox-55.0.3/js/src/jit/ExecutableAllocator.h.wasm 2017-09-05 11:32:12.235909468 +0200
++++ firefox-55.0.3/js/src/jit/ExecutableAllocator.h 2017-09-05 11:32:46.157916575 +0200
+@@ -219,7 +219,7 @@ class ExecutableAllocator
+
+ static void poisonCode(JSRuntime* rt, JitPoisonRangeVector& ranges);
+
+-#if defined(JS_CODEGEN_X86) || defined(JS_CODEGEN_X64) || defined(JS_SIMULATOR_ARM64)
++#if defined(JS_CODEGEN_X86) || defined(JS_CODEGEN_X64) || defined(JS_SIMULATOR_ARM64) || defined(JS_CODEGEN_NONE)
+ static void cacheFlush(void*, size_t)
+ {
+ }
+diff -up firefox-55.0.3/js/src/jit-test/tests/wasm/bench/wasm_box2d.wasm firefox-55.0.3/js/src/jit-test/tests/wasm/bench/wasm_box2d
diff --git a/build-disable-elfhack.patch b/build-disable-elfhack.patch
new file mode 100644
index 0000000..a80c551
--- /dev/null
+++ b/build-disable-elfhack.patch
@@ -0,0 +1,12 @@
+diff -up firefox-65.0/toolkit/moz.configure.disable-elfhack firefox-65.0/toolkit/moz.configure
+--- firefox-65.0/toolkit/moz.configure.disable-elfhack 2019-01-28 14:16:48.530345132 +0100
++++ firefox-65.0/toolkit/moz.configure 2019-01-28 14:18:03.231029682 +0100
+@@ -1036,7 +1036,7 @@ with only_when('--enable-compile-environ
+ help='{Enable|Disable} elf hacks')
+
+ set_config('USE_ELF_HACK',
+- depends_if('--enable-elf-hack')(lambda _: True))
++ depends_if('--enable-elf-hack')(lambda _: False))
+
+
+ @depends(check_build_environment)
diff --git a/icecat.spec b/icecat.spec
index 1dbcffa..a7a95f4 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -63,6 +63,7 @@
%if 0%{?fedora} > 30
%global wayland_backend_default 1
%endif
+%global disable_elfhack 1
# Use mozilla hardening option?
%global hardened_build 1
@@ -154,6 +155,11 @@ Patch29: build-big-endian.patch
# Always feel lucky for unsupported platforms:
# https://bugzilla.mozilla.org/show_bug.cgi?id=1347128
Patch37: build-jit-atomic-always-lucky.patch
+# Fixing missing cacheFlush when JS_CODEGEN_NONE is used (s390x)
+Patch38: build-cacheFlush-missing.patch
+Patch40: build-aarch64-skia.patch
+Patch41: build-disable-elfhack.patch
+Patch44: build-arm-libopus.patch
# Fedora specific patches
Patch219: rhbz-1173156.patch
@@ -342,11 +348,17 @@ tar -xf %{SOURCE5}
%patch8 -p0 -b .fix_installer
#%%patch37 -p1 -b .jit-atomic-lucky
+%ifarch aarch64
+%patch40 -p1 -b .aarch64-skia
+%endif
+%if 0%{?disable_elfhack}
+%patch41 -p1 -b .disable-elfhack
+%endif
# Fedora patches
%patch219 -p1 -b .rhbz-1173156
-#ARM run-time patch
+# ARM run-time patch
%ifarch aarch64
%patch226 -p1 -b .1354671
%endif
@@ -354,6 +366,7 @@ tar -xf %{SOURCE5}
#%%patch413 -p1 -b .1353817
%ifarch %{arm}
%patch414 -p1 -b .Bug-1238661---fix-mozillaSignalTrampoline-to-work
+%patch44 -p1 -b .build-arm-libopus
%endif
#%%patch417 -p1 -b .bug1375074-save-restore-x28
@@ -370,11 +383,10 @@ tar -xf %{SOURCE5}
%patch424 -p1 -b .mozilla-1566876-webrtc-ind
%patch425 -p1 -b .mozilla-1568569
-
# Wayland specific upstream patches
%patch565 -p1 -b .firefox-pipewire
-##Remove default configuration and copy the customized one
+# Remove default configuration and copy the customized one
rm -f .mozconfig
cp -p %{SOURCE3} .mozconfig
From c2b920677066040c1361b5631dadcc1e038a6586 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Tue, 20 Aug 2019 11:58:52 +0200
Subject: [PATCH 057/473] WebRTC always disabled| Do not build langpacks
---
.gitignore | 1 +
icecat.1 | 151 ----------------------------------------------------
icecat.spec | 29 +++++-----
sources | 3 +-
4 files changed, 15 insertions(+), 169 deletions(-)
delete mode 100644 icecat.1
diff --git a/.gitignore b/.gitignore
index 1039629..0d7fb8a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -86,3 +86,4 @@
/cbindgen-vendor.tar.xz
/icecat-68.0.2-gnu1.tar.bz2
/icecat-68.0.2-langpacks.tar.gz
+/icecat-68.0.2-gnu2.tar.bz2
diff --git a/icecat.1 b/icecat.1
deleted file mode 100644
index ec21e5e..0000000
--- a/icecat.1
+++ /dev/null
@@ -1,151 +0,0 @@
-.TH ICECAT 1 "December 12, 2018" icecat "Linux User's Manual"
-.SH NAME
-IceCat \- GNU version of Firefox browser
-
-.SH SYNOPSIS
-.B icecat
-[\fIOPTIONS\fR ...] [\fIURL\fR]
-
-.B icecat-bin
-[\fIOPTIONS\fR] [\fIURL\fR]
-
-.SH DESCRIPTION
-\fBGnuzilla IceCat\fR is an open-source web browser, designed for standards compliance, performance and portability.
-
-GNUzilla is the GNU version of the Mozilla suite, and GNU IceCat is the GNU version of the Firefox browser. 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.
-
-In addition, GNU IceCat includes some privacy protection features, included in a separate addon:
-
-Some sites refer to zero-size images on other hosts to keep track of cookies. When IceCat detects this mechanism it blocks cookies from the site hosting the zero-length image file. (It is possible to re-enable such a site by removing it from the blocked hosts list.)
-Other sites rewrite the host name in links redirecting the user to another site, mainly to "spy" on clicks. When this behavior is detected, IceCat shows a message alerting the user.
-
-Origin of the name
-
-The name IceCat was coined to show our relationship to the Mozilla Firefox browser. Ice isn't Fire and a Cat isn't a Fox, so it is clearly a different package (we don't want Mozilla blamed for our mistakes, nor cause confusion with their trademarks), but is equally clearly intimately related (of course nearly all of the work comes from the Mozilla foundation effort, so we want to give credit).
-
-.SH USAGE
-\fBicecat\fR is a simple shell script that will set up the
-environment for the actual executable, \fBicecat-bin\fR.
-
-.SH OPTIONS
-A summary of the options supported by \fBicecat\fR is included below.
-
-.SS "X11 options"
-.TP
-.BI \-\-display= DISPLAY
-X display to use
-.TP
-.B \--sync
-Make X calls synchronous
-.TP
-.B \-\-g-fatal-warnings
-Make all warnings fatal
-
-.SS "IceCat options"
-.TP
-.B \-h, \-help
-Show summary of options.
-.TP
-.B \-v, \-version
-Print IceCat version.
-.TP
-\fB\-P\fR \fIprofile\fR
-Start with \fIprofile\fR.
-.TP
-\fB\-\-profile\fR \fIpath\fR
-Start with profile at \fIpath\fR.
-.TP
-\fB\-\-migration\fR
-Start with migration wizard.
-.TP
-.B \-\-ProfileManager
-Start with ProfileManager.
-.TP
-\fB\-\-no\-remote\fR
-Do not accept or send remote commands; implies \fB--new-instance\fR.
-.TP
-\fB\-\-new\-instance\fR
-Open new instance, not a new window in running instance.
-.TP
-\fB\-\-UILocale\fR \fIlocale\fR
-Start with \fIlocale\fR resources as UI Locale.
-.TP
-\fB\-\-save\-mode\fR
-Disables extensions and themes for this session.
-.TP
-\fB\-\-headless\fR
-Run without a GUI.
-.TP
-\fB\-\-marionette\fR
-Enable remote control server.
-.TP
-\fB\-\-browser\fR
-Open a browser window.
-.TP
-\fB\-\-new-window\fR \fIurl\fR
-Open \fIurl\fR in a new window.
-.TP
-\fB\-\-new-tab\fR \fIurl\fR
-Open \fIurl\fR in a new tab.
-.TP
-\fB\-\-private-window\fR \fIurl\fR
-Open \fIurl\fR in a new private window.
-.TP
-\fB\-\-preferences\fR
-Open Preferences dialog.
-.TP
-\fB\-\-screenshot\fR [\fIpath\fR]
-Save screenshot to \fIpath\fR or in working directory.
-.TP
-\fB\-\-window-size\fR \fIwidth\fR[,\fIheight\fR]
-Width and optionally height of screenshot.
-.TP
-\fB\-\-search\fR \fIterm\fR
-Search \fIterm\fR with your default search engine.
-.TP
-
-
-\fB\-\-jsconsole\fR
-Open the Browser Console.
-.TP
-\fB\-\-jsdebugger\fR
-Open the Browser Toolbox.
-.TP
-\fB\-\-wait-for-jsdebugger\fR
-Spin event loop until JS debugger connects. Enables debugging (some) application startup code paths. Only has an effect when \fI--jsdebugger\fR is also supplied.
-.TP
-\fB\-\-devtools\fR
-Open DevTools on initial load.
-.TP
-\fB\-\-start-debugger-server\fR [ws:][\fIport\fR|\fIpath\fR]
-Start the debugger server on a TCP port or Unix domain socket path. Defaults to TCP port 6000. Use WebSocket protocol if ws: prefix is specified.
-.TP
-\fB\-\-recording\fR \fIfile\fR
-Record drawing for a given URL.
-.TP
-\fB\-\-recording-output\fR \fIfile\fR
-Specify destination file for a drawing recording.
-.TP
-\fB\-\-setDefaultBrowser\fR
-Set this app as the default browser.
-
-.SH FILES
-\fI/usr/bin/icecat\fR - shell script wrapping
-\fBicecat\fR
-.br
-\fI/usr/lib64/icecat/icecat-bin\fR - \fBicecat\fR
-executable
-
-.SH VERSION
-60.x
-
-.SH BUGS
-To report a bug, please mail to bug-gnuzilla@gnu.org/\fR
-
-.SH AUTHORS
-.TP
-.B For a full list of the people who are credited with making a contribution to Mozilla, see http://www.mozilla.org/credits/ .
-.I http://www.mozilla.org/about.html
-.TP
-.B Tobias Girstmair
-.I https://www.gnu.org/software/gnuzilla/
diff --git a/icecat.spec b/icecat.spec
index a7a95f4..76f9940 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -1,5 +1,5 @@
##Active/Deactive language files handling
-%global build_langpacks 1
+%global build_langpacks 0
%global default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html
@@ -80,11 +80,11 @@ ExcludeArch: %{arm}
ExcludeArch: s390x
# Set new source-code build version
-%global gnu_ver gnu1
+%global gnu_ver gnu2
Name: icecat
Version: 68.0.2
-Release: 1.%{gnu_ver}%{?dist}
+Release: 2.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
# Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -110,9 +110,6 @@ Source4: %{name}-%{version}-langpacks.tar.gz
# Download from https://www.mozilla.org/MPL/2.0/index.txt
Source5: %{name}-COPYING-licensefiles.tar.gz
-# manpage file
-Source6: %{name}.1
-
Source7: %{name}-lang_download.sh
# Desktop files
@@ -156,10 +153,10 @@ Patch29: build-big-endian.patch
# https://bugzilla.mozilla.org/show_bug.cgi?id=1347128
Patch37: build-jit-atomic-always-lucky.patch
# Fixing missing cacheFlush when JS_CODEGEN_NONE is used (s390x)
-Patch38: build-cacheFlush-missing.patch
-Patch40: build-aarch64-skia.patch
-Patch41: build-disable-elfhack.patch
-Patch44: build-arm-libopus.patch
+Patch38: build-cacheFlush-missing.patch
+Patch40: build-aarch64-skia.patch
+Patch41: build-disable-elfhack.patch
+Patch44: build-arm-libopus.patch
# Fedora specific patches
Patch219: rhbz-1173156.patch
@@ -392,12 +389,7 @@ cp -p %{SOURCE3} .mozconfig
echo "ac_add_options --enable-default-toolkit=cairo-gtk3-wayland" >> .mozconfig
echo "ac_add_options --enable-official-branding" >> .mozconfig
-
-%ifnarch %{ix86} x86_64 ppc64le
echo "ac_add_options --disable-webrtc" >> .mozconfig
-%else
-echo "ac_add_options --enable-webrtc" >> .mozconfig
-%endif
%if %{with pulseaudio}
echo "ac_add_options --enable-pulseaudio" >> .mozconfig
@@ -662,7 +654,7 @@ desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE9}
##Install man page
mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1
-install -p -m 644 %{SOURCE6} $RPM_BUILD_ROOT%{_mandir}/man1/
+install -p -m 644 %{name}.1 $RPM_BUILD_ROOT%{_mandir}/man1/
##Extract langpacks, make any mods needed, repack the langpack, and install it.
%if 0%{?build_langpacks}
@@ -811,6 +803,11 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Mon Aug 19 2019 Antonio Trande - 68.0.2-2.gnu2
+- WebRTC always disabled
+- Do not build langpacks
+- gnu2 build release
+
* Thu Aug 15 2019 Antonio Trande - 68.0.2-1.gnu1
- Mozilla release 68.0.2
- Import cbindgen stuff from Firefox package
diff --git a/sources b/sources
index 9444413..a9d6a69 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,3 @@
SHA512 (cbindgen-vendor.tar.xz) = b0df3a8624efc488726211c99ac8a69c928d0bef24c2f7eafc6971be7ce2fafd54fba9330afd7e61ffe3a0d799bc5d994fa9f11f2da88cd93924c9347bfc4355
-SHA512 (icecat-68.0.2-gnu1.tar.bz2) = 3d1874097c7f1282b771d43d338949d422d03b7c97bb1f2cdaf089559ec0f20f4efbb2bfc661a6177d00a2254d3d16d78e78c0b8e18ac33f12dd56c9b7e33544
-SHA512 (icecat-68.0.2-langpacks.tar.gz) = 4361c78b48ef0a9792d0fdba03c2ea7c4f880ba083d62e5ca83c9f65ec4cc3917b4020ebe16bb1a07faa780633c8e25aa7369f289ff54c0472158f993e703f1f
+SHA512 (icecat-68.0.2-gnu2.tar.bz2) = 55d99ccc924109671448d1e5fee04e281da508e5c78a3c79a8a556ca66167d4b704652a4bf38a5f0c3a6584ba455f6cb8bf1595b0503743597ec312c56f1ce3e
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From 1418806b60c7218168727c97487d4997e54b8a6c Mon Sep 17 00:00:00 2001
From: sagitter
Date: Tue, 20 Aug 2019 12:00:39 +0200
Subject: [PATCH 058/473] Disable MOZ_SERVICES_SYNC
---
icecat.spec | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/icecat.spec b/icecat.spec
index 76f9940..563e87e 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -608,7 +608,7 @@ MOZ_SMP_FLAGS=-j1
%endif
export MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS"
-export MOZ_SERVICES_SYNC="1"
+export MOZ_SERVICES_SYNC="0"
export MOZ_OPTIMIZE_FLAGS=" -freorder-blocks -fno-reorder-functions"
export STRIP=/bin/true
MOZ_RUN_GTEST=0 ./mach -v build
@@ -807,6 +807,7 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
- WebRTC always disabled
- Do not build langpacks
- gnu2 build release
+- Disable MOZ_SERVICES_SYNC
* Thu Aug 15 2019 Antonio Trande - 68.0.2-1.gnu1
- Mozilla release 68.0.2
From 180168f9d804d83fc05bfdcc9c550f140b2b700e Mon Sep 17 00:00:00 2001
From: sagitter
Date: Tue, 20 Aug 2019 12:23:12 +0200
Subject: [PATCH 059/473] Remove MOZ_SERVICES_SYNC flag
---
icecat.spec | 1 -
1 file changed, 1 deletion(-)
diff --git a/icecat.spec b/icecat.spec
index 563e87e..61f0e05 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -608,7 +608,6 @@ MOZ_SMP_FLAGS=-j1
%endif
export MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS"
-export MOZ_SERVICES_SYNC="0"
export MOZ_OPTIMIZE_FLAGS=" -freorder-blocks -fno-reorder-functions"
export STRIP=/bin/true
MOZ_RUN_GTEST=0 ./mach -v build
From 544344b80acb4497ccd43f59e58db9c2be027eeb Mon Sep 17 00:00:00 2001
From: sagitter
Date: Fri, 23 Aug 2019 18:14:56 +0200
Subject: [PATCH 060/473] Build release 38.0.2-gnu3
---
.gitignore | 1 +
icecat-fix_installer.patch | 22 ----------------------
icecat.spec | 10 ++++++++--
sources | 2 +-
4 files changed, 10 insertions(+), 25 deletions(-)
diff --git a/.gitignore b/.gitignore
index 0d7fb8a..0d81c9b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -87,3 +87,4 @@
/icecat-68.0.2-gnu1.tar.bz2
/icecat-68.0.2-langpacks.tar.gz
/icecat-68.0.2-gnu2.tar.bz2
+/icecat-68.0.2-gnu3.tar.bz2
diff --git a/icecat-fix_installer.patch b/icecat-fix_installer.patch
index a56a880..cefa8e5 100644
--- a/icecat-fix_installer.patch
+++ b/icecat-fix_installer.patch
@@ -30,25 +30,3 @@
#endif
@RESPATH@/browser/features/*
---- browser/installer/allowed-dupes.orig.mn 2017-03-19 19:59:09.000000000 +0100
-+++ browser/installer/allowed-dupes.mn 2017-03-24 23:15:37.026964374 +0100
-@@ -752,3 +752,19 @@
- browser/extensions/tprb.addon@searxes.danwin1210.me/manifest.json
- browser/extensions/tprb.addon@searxes.danwin1210.me/tprb_dlg.html
- browser/extensions/tprb.addon@searxes.danwin1210.me/style.css
-+#
-+browser/extensions/abouticecat@gnu.org/defaults/preferences/preferences.js
-+browser/extensions/html5-video-everywhere@lejenome.me/bootstrap.js
-+browser/chrome/browser/content/browser/aboutaccounts/images/fox.png
-+browser/extensions/spyblock@gnu.org/chrome/content/ui/ext/common.js
-+browser/extensions/spyblock@gnu.org/lib/ext_common.js
-+browser/extensions/html5-video-everywhere@lejenome.me/LICENSE
-+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-break/LICENSE
-+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-dailymotion/LICENSE
-+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-facebook/LICENSE
-+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-metacafe/LICENSE
-+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-vimeo/LICENSE
-+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-youtube/LICENSE
-+browser/extensions/spyblock@gnu.org/chrome/content/ui/skin/abp-128.png
-+browser/extensions/spyblock@gnu.org/chrome/skin/abp-icon-big.png
-+#
diff --git a/icecat.spec b/icecat.spec
index 61f0e05..07cb442 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -80,11 +80,11 @@ ExcludeArch: %{arm}
ExcludeArch: s390x
# Set new source-code build version
-%global gnu_ver gnu2
+%global gnu_ver gnu3
Name: icecat
Version: 68.0.2
-Release: 2.%{gnu_ver}%{?dist}
+Release: 3.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
# Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -500,6 +500,9 @@ echo 'export NODEJS="%{_buildrootdir}/bin/node-stdout-nonblocking-wrapper"' >> .
# Remove executable bit to make brp-mangle-shebangs happy.
chmod -x third_party/rust/itertools/src/lib.rs
+# Remove unrecognized files
+find extensions/gnu -name cose.manifest -delete
+
#---------------------------------------------------------------------
%build
@@ -802,6 +805,9 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Wed Aug 21 2019 Antonio Trande - 68.0.2-3.gnu3
+- gnu3 build release
+
* Mon Aug 19 2019 Antonio Trande - 68.0.2-2.gnu2
- WebRTC always disabled
- Do not build langpacks
diff --git a/sources b/sources
index a9d6a69..eca32d4 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
SHA512 (cbindgen-vendor.tar.xz) = b0df3a8624efc488726211c99ac8a69c928d0bef24c2f7eafc6971be7ce2fafd54fba9330afd7e61ffe3a0d799bc5d994fa9f11f2da88cd93924c9347bfc4355
-SHA512 (icecat-68.0.2-gnu2.tar.bz2) = 55d99ccc924109671448d1e5fee04e281da508e5c78a3c79a8a556ca66167d4b704652a4bf38a5f0c3a6584ba455f6cb8bf1595b0503743597ec312c56f1ce3e
+SHA512 (icecat-68.0.2-gnu3.tar.bz2) = 88cb18f8097c3581ef9cecad21a682e23512549bac411217fcbd4789d57f21744aab165d52aa2e5c1538ce877e58fd2f3b3d802d9ad8f47bf37b867bcbc4b28f
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From dd0cd4439486b764db292fe93e2f500c98f53817 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Fri, 23 Aug 2019 19:00:52 +0200
Subject: [PATCH 061/473] Enable langpacks
---
icecat.spec | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/icecat.spec b/icecat.spec
index 07cb442..9ab2fb7 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -1,5 +1,5 @@
##Active/Deactive language files handling
-%global build_langpacks 0
+%global build_langpacks 1
%global default_bookmarks_file %{_datadir}/bookmarks/default-bookmarks.html
@@ -84,7 +84,7 @@ ExcludeArch: s390x
Name: icecat
Version: 68.0.2
-Release: 3.%{gnu_ver}%{?dist}
+Release: 4.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
# Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -805,6 +805,9 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Fri Aug 23 2019 Antonio Trande - 68.0.2-4.gnu3
+- Enable langpacks
+
* Wed Aug 21 2019 Antonio Trande - 68.0.2-3.gnu3
- gnu3 build release
From 100ccf28ea30927b9b01c7cba877d6e4eb583248 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Fri, 23 Aug 2019 19:04:47 +0200
Subject: [PATCH 062/473] New source for langpacks
---
sources | 1 +
1 file changed, 1 insertion(+)
diff --git a/sources b/sources
index eca32d4..1bfcc4b 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,4 @@
SHA512 (cbindgen-vendor.tar.xz) = b0df3a8624efc488726211c99ac8a69c928d0bef24c2f7eafc6971be7ce2fafd54fba9330afd7e61ffe3a0d799bc5d994fa9f11f2da88cd93924c9347bfc4355
SHA512 (icecat-68.0.2-gnu3.tar.bz2) = 88cb18f8097c3581ef9cecad21a682e23512549bac411217fcbd4789d57f21744aab165d52aa2e5c1538ce877e58fd2f3b3d802d9ad8f47bf37b867bcbc4b28f
+SHA512 (icecat-68.0.2-langpacks.tar.gz) = 4361c78b48ef0a9792d0fdba03c2ea7c4f880ba083d62e5ca83c9f65ec4cc3917b4020ebe16bb1a07faa780633c8e25aa7369f289ff54c0472158f993e703f1f
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From 022f9383f0106ba5b475f96e1ac029a3d09af3cd Mon Sep 17 00:00:00 2001
From: sagitter
Date: Fri, 23 Aug 2019 19:07:19 +0200
Subject: [PATCH 063/473] Upload rpmlintrc file
---
icecat.rpmlintrc | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
create mode 100644 icecat.rpmlintrc
diff --git a/icecat.rpmlintrc b/icecat.rpmlintrc
new file mode 100644
index 0000000..c2c8f6f
--- /dev/null
+++ b/icecat.rpmlintrc
@@ -0,0 +1,40 @@
+# Whitelisting errors
+# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#whitelist
+# Edited by sagitter (sagitter AT fedoraproject dot org)
+
+# KNOWN BUGS:
+#
+
+# TESTS:
+##### SRPMs #####
+
+# ifarch applied patches are okay
+# https://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support
+addFilter(r'(%ifarch-applied-patch) Patch*')
+
+# ERRORS:
+##### RPMs #####
+
+# chroot function (??)
+addFilter(r'(missing-call-to-chdir-with-chroot) %{_libdir}/icecat/libmozsandbox.so')
+addFilter(r'(missing-call-to-setgroups-before-setuid) %{_libdir}/icecat/libxul.so')
+
+# Expected on FF browser
+# https://support.mozilla.org/en-US/questions/1045418
+addFilter(r'(zero-length) %{_libdir}/icecat/chrome.manifest')
+addFilter(r'(zero-length) %{_libdir}/icecat/browser/chrome.manifest')
+
+# False positive
+addFilter(r'(dangling-symlink) %{_libdir}/icecat/dictionaries %{_datadir}/myspell')
+addFilter(r'(unversioned-explicit-provides) webclient')
+
+# WARNINGS:
+##### RPMs #####
+
+addFilter(r'(no-manual-page-for-binary) icecat-wayland')
+
+##### SRPMs #####
+# Different file size due to the signature of the source code tarbz archive
+addFilter(r'file-size-mismatch')
+
+addFilter(r'(invalid-url) Source*')
From 19fd855d427f3ce92907dadb270bd442661fe048 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sun, 1 Sep 2019 11:22:48 +0200
Subject: [PATCH 064/473] Rebuild after retiring of Python2
---
icecat.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/icecat.spec b/icecat.spec
index 9ab2fb7..41f3e4e 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -84,7 +84,7 @@ ExcludeArch: s390x
Name: icecat
Version: 68.0.2
-Release: 4.%{gnu_ver}%{?dist}
+Release: 5.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
# Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -805,6 +805,9 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Sun Sep 01 2019 Antonio Trande - 68.0.2-5.gnu3
+- Rebuild after retiring of Python2
+
* Fri Aug 23 2019 Antonio Trande - 68.0.2-4.gnu3
- Enable langpacks
From 2b48fe50b94fd23566e164101887830edbf550cf Mon Sep 17 00:00:00 2001
From: sagitter
Date: Mon, 2 Sep 2019 20:29:50 +0200
Subject: [PATCH 065/473] Mozilla release 60.9.0
---
.gitignore | 2 ++
icecat-fix_installer.patch | 21 ++++----------------
icecat-lang_download.sh | 2 +-
icecat.rpmlintrc | 40 --------------------------------------
icecat.spec | 7 +++++--
sources | 4 ++--
6 files changed, 14 insertions(+), 62 deletions(-)
delete mode 100644 icecat.rpmlintrc
diff --git a/.gitignore b/.gitignore
index 0e7fd6c..43b3979 100644
--- a/.gitignore
+++ b/.gitignore
@@ -83,3 +83,5 @@
/icecat-60.7.2-langpacks.tar.gz
/icecat-60.8.0-gnu1.tar.bz2
/icecat-60.8.0-langpacks.tar.gz
+/icecat-60.9.0-gnu1.tar.bz2
+/icecat-60.9.0-langpacks.tar.gz
diff --git a/icecat-fix_installer.patch b/icecat-fix_installer.patch
index a56a880..6ed1704 100644
--- a/icecat-fix_installer.patch
+++ b/icecat-fix_installer.patch
@@ -32,23 +32,10 @@
--- browser/installer/allowed-dupes.orig.mn 2017-03-19 19:59:09.000000000 +0100
+++ browser/installer/allowed-dupes.mn 2017-03-24 23:15:37.026964374 +0100
-@@ -752,3 +752,19 @@
- browser/extensions/tprb.addon@searxes.danwin1210.me/manifest.json
- browser/extensions/tprb.addon@searxes.danwin1210.me/tprb_dlg.html
- browser/extensions/tprb.addon@searxes.danwin1210.me/style.css
+@@ -771,3 +771,6 @@
+ browser/extensions/SubmitMe@0xbeef.coffee/License
+ browser/extensions/SubmitMe@0xbeef.coffee/manifest.json
+ browser/extensions/SubmitMe@0xbeef.coffee/improve_css.js
+#
+browser/extensions/abouticecat@gnu.org/defaults/preferences/preferences.js
-+browser/extensions/html5-video-everywhere@lejenome.me/bootstrap.js
+browser/chrome/browser/content/browser/aboutaccounts/images/fox.png
-+browser/extensions/spyblock@gnu.org/chrome/content/ui/ext/common.js
-+browser/extensions/spyblock@gnu.org/lib/ext_common.js
-+browser/extensions/html5-video-everywhere@lejenome.me/LICENSE
-+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-break/LICENSE
-+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-dailymotion/LICENSE
-+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-facebook/LICENSE
-+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-metacafe/LICENSE
-+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-vimeo/LICENSE
-+browser/extensions/html5-video-everywhere@lejenome.me/node_modules/h5vew-site-youtube/LICENSE
-+browser/extensions/spyblock@gnu.org/chrome/content/ui/skin/abp-128.png
-+browser/extensions/spyblock@gnu.org/chrome/skin/abp-icon-big.png
-+#
diff --git a/icecat-lang_download.sh b/icecat-lang_download.sh
index 832a09b..2832b59 100755
--- a/icecat-lang_download.sh
+++ b/icecat-lang_download.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-VERSION=60.8.0
+VERSION=60.9.0
URL=https://ftp.mozilla.org/pub/firefox/releases/${VERSION}esr/linux-x86_64/xpi/
for u in $URL; do
diff --git a/icecat.rpmlintrc b/icecat.rpmlintrc
deleted file mode 100644
index c2c8f6f..0000000
--- a/icecat.rpmlintrc
+++ /dev/null
@@ -1,40 +0,0 @@
-# Whitelisting errors
-# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#whitelist
-# Edited by sagitter (sagitter AT fedoraproject dot org)
-
-# KNOWN BUGS:
-#
-
-# TESTS:
-##### SRPMs #####
-
-# ifarch applied patches are okay
-# https://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support
-addFilter(r'(%ifarch-applied-patch) Patch*')
-
-# ERRORS:
-##### RPMs #####
-
-# chroot function (??)
-addFilter(r'(missing-call-to-chdir-with-chroot) %{_libdir}/icecat/libmozsandbox.so')
-addFilter(r'(missing-call-to-setgroups-before-setuid) %{_libdir}/icecat/libxul.so')
-
-# Expected on FF browser
-# https://support.mozilla.org/en-US/questions/1045418
-addFilter(r'(zero-length) %{_libdir}/icecat/chrome.manifest')
-addFilter(r'(zero-length) %{_libdir}/icecat/browser/chrome.manifest')
-
-# False positive
-addFilter(r'(dangling-symlink) %{_libdir}/icecat/dictionaries %{_datadir}/myspell')
-addFilter(r'(unversioned-explicit-provides) webclient')
-
-# WARNINGS:
-##### RPMs #####
-
-addFilter(r'(no-manual-page-for-binary) icecat-wayland')
-
-##### SRPMs #####
-# Different file size due to the signature of the source code tarbz archive
-addFilter(r'file-size-mismatch')
-
-addFilter(r'(invalid-url) Source*')
diff --git a/icecat.spec b/icecat.spec
index 532c4dd..7cef988 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -73,8 +73,8 @@ ExcludeArch: %{arm}
%global gnu_ver gnu1
Name: icecat
-Version: 60.8.0
-Release: 6.%{gnu_ver}%{?dist}
+Version: 60.9.0
+Release: 1.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
## Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -749,6 +749,9 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Mon Sep 02 2019 Antonio Trande - 60.9.0-1.gnu1
+- Mozilla release 60.9.0
+
* Sun Jul 28 2019 Antonio Trande - 60.8.0-6.gnu1
- Add patch to fix the addon installation
diff --git a/sources b/sources
index e5e5f07..cccd512 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (icecat-60.8.0-gnu1.tar.bz2) = 31900c921102ccaa736b8be20210d16b7bae9c797d2529e9f38e803d834c72bacfe6e586934e21c48ca7097cc0bbc56adccc6beefc5f42b1e7ee4a3d93e9f223
-SHA512 (icecat-60.8.0-langpacks.tar.gz) = 82f63a5c0e7b4af8ed616d94f99274c4a54fa092147bcce3eb4f77026b562a8109cc289fec18abdf0e350484a8645eb32f173fbbe3e20cb12f8fb79cea52554b
+SHA512 (icecat-60.9.0-gnu1.tar.bz2) = 6080c41bf1235b9d13ecb0f62e41af42d8180854a140420552128c1707f639fd73623910410ac0ce20f289e4c3ea010b70559d750ac0fb4f93b9642ff2c2cadb
+SHA512 (icecat-60.9.0-langpacks.tar.gz) = 14117477b4be24445326f78022ba40d1972e4f82ff888e8dcbba032afede0eb52e43ae6bc1354955fa0ba46fbfe3b668fe3e925fccb2a4769eb7476be8b30737
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From dc2006f0fb493f348466cd84cda5f44bf59f8706 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Tue, 3 Sep 2019 13:31:53 +0200
Subject: [PATCH 066/473] Mozilla release 68.1.0
---
.gitignore | 2 +
icecat-lang_download.sh | 2 +-
icecat.rpmlintrc | 40 --------
icecat.spec | 24 +++--
mozilla-1548475.patch | 34 +++++++
mozilla-1562827.patch | 141 +++++++++++++++++++++++++++
mozilla-1567434-1.patch | 205 ++++++++++++++++++++++++++++++++++++++++
mozilla-1567434-2.patch | 35 +++++++
mozilla-1573813.patch | 29 ++++++
sources | 6 +-
10 files changed, 468 insertions(+), 50 deletions(-)
delete mode 100644 icecat.rpmlintrc
create mode 100644 mozilla-1548475.patch
create mode 100644 mozilla-1562827.patch
create mode 100644 mozilla-1567434-1.patch
create mode 100644 mozilla-1567434-2.patch
create mode 100644 mozilla-1573813.patch
diff --git a/.gitignore b/.gitignore
index 0d81c9b..722505b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -88,3 +88,5 @@
/icecat-68.0.2-langpacks.tar.gz
/icecat-68.0.2-gnu2.tar.bz2
/icecat-68.0.2-gnu3.tar.bz2
+/icecat-68.1.0-gnu1.tar.bz2
+/icecat-68.1.0-langpacks.tar.gz
diff --git a/icecat-lang_download.sh b/icecat-lang_download.sh
index d785ca1..87c6659 100755
--- a/icecat-lang_download.sh
+++ b/icecat-lang_download.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-VERSION=68.0.2
+VERSION=68.1.0
URL=https://ftp.mozilla.org/pub/firefox/releases/${VERSION}esr/linux-x86_64/xpi/
for u in $URL; do
diff --git a/icecat.rpmlintrc b/icecat.rpmlintrc
deleted file mode 100644
index c2c8f6f..0000000
--- a/icecat.rpmlintrc
+++ /dev/null
@@ -1,40 +0,0 @@
-# Whitelisting errors
-# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#whitelist
-# Edited by sagitter (sagitter AT fedoraproject dot org)
-
-# KNOWN BUGS:
-#
-
-# TESTS:
-##### SRPMs #####
-
-# ifarch applied patches are okay
-# https://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support
-addFilter(r'(%ifarch-applied-patch) Patch*')
-
-# ERRORS:
-##### RPMs #####
-
-# chroot function (??)
-addFilter(r'(missing-call-to-chdir-with-chroot) %{_libdir}/icecat/libmozsandbox.so')
-addFilter(r'(missing-call-to-setgroups-before-setuid) %{_libdir}/icecat/libxul.so')
-
-# Expected on FF browser
-# https://support.mozilla.org/en-US/questions/1045418
-addFilter(r'(zero-length) %{_libdir}/icecat/chrome.manifest')
-addFilter(r'(zero-length) %{_libdir}/icecat/browser/chrome.manifest')
-
-# False positive
-addFilter(r'(dangling-symlink) %{_libdir}/icecat/dictionaries %{_datadir}/myspell')
-addFilter(r'(unversioned-explicit-provides) webclient')
-
-# WARNINGS:
-##### RPMs #####
-
-addFilter(r'(no-manual-page-for-binary) icecat-wayland')
-
-##### SRPMs #####
-# Different file size due to the signature of the source code tarbz archive
-addFilter(r'file-size-mismatch')
-
-addFilter(r'(invalid-url) Source*')
diff --git a/icecat.spec b/icecat.spec
index 41f3e4e..ee400de 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -80,11 +80,11 @@ ExcludeArch: %{arm}
ExcludeArch: s390x
# Set new source-code build version
-%global gnu_ver gnu3
+%global gnu_ver gnu1
Name: icecat
-Version: 68.0.2
-Release: 5.%{gnu_ver}%{?dist}
+Version: 68.1.0
+Release: 1.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
# Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -176,6 +176,12 @@ Patch425: mozilla-1568569.patch
# Wayland specific upstream patches
Patch565: firefox-pipewire.patch
+
+Patch575: mozilla-1548475.patch
+Patch576: mozilla-1562827.patch
+Patch578: mozilla-1567434-1.patch
+Patch579: mozilla-1567434-2.patch
+Patch580: mozilla-1573813.patch
#
BuildRequires: alsa-lib-devel
@@ -304,9 +310,6 @@ Extensions included to this version of IceCat:
* Searxes
Third-party Request Blocker
- * View Tube
- Watch videos from video sharing websites with extra options
-
%if 0%{?wayland_backend_default}
%package x11
Summary: GNU IceCat X11 launcher
@@ -382,6 +385,11 @@ tar -xf %{SOURCE5}
# Wayland specific upstream patches
%patch565 -p1 -b .firefox-pipewire
+%patch575 -p1 -b .mozilla-1548475
+%patch576 -p1 -b .mozilla-1562827
+%patch578 -p1 -b .mozilla-1567434-1
+%patch579 -p1 -b .mozilla-1567434-2
+%patch580 -p1 -b .mozilla-1573813
# Remove default configuration and copy the customized one
rm -f .mozconfig
@@ -805,6 +813,10 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Tue Sep 03 2019 Antonio Trande - 68.1.0-1.gnu1
+- Mozilla release 68.1.0
+- Inglobe Wayland patches from Firefox 68
+
* Sun Sep 01 2019 Antonio Trande - 68.0.2-5.gnu3
- Rebuild after retiring of Python2
diff --git a/mozilla-1548475.patch b/mozilla-1548475.patch
new file mode 100644
index 0000000..b325683
--- /dev/null
+++ b/mozilla-1548475.patch
@@ -0,0 +1,34 @@
+diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp
+--- a/dom/plugins/base/nsPluginHost.cpp
++++ b/dom/plugins/base/nsPluginHost.cpp
+@@ -105,6 +105,10 @@
+ # include "windows.h"
+ # include "winbase.h"
+ #endif
++#if (MOZ_WIDGET_GTK)
++# include
++# include
++#endif
+
+ #include "npapi.h"
+
+@@ -358,9 +362,15 @@
+ mOverrideInternalTypes =
+ Preferences::GetBool("plugin.override_internal_types", false);
+
+- mPluginsDisabled = Preferences::GetBool("plugin.disable", false);
+-
+- Preferences::AddStrongObserver(this, "plugin.disable");
++ bool waylandBackend = false;
++#if MOZ_WIDGET_GTK
++ waylandBackend = !GDK_IS_X11_DISPLAY(gdk_display_get_default());
++#endif
++ mPluginsDisabled =
++ Preferences::GetBool("plugin.disable", false) || waylandBackend;
++ if (!waylandBackend) {
++ Preferences::AddStrongObserver(this, "plugin.disable");
++ }
+
+ nsCOMPtr obsService =
+ mozilla::services::GetObserverService();
+
diff --git a/mozilla-1562827.patch b/mozilla-1562827.patch
new file mode 100644
index 0000000..497133c
--- /dev/null
+++ b/mozilla-1562827.patch
@@ -0,0 +1,141 @@
+diff -up firefox-69.0/widget/gtk/nsWindow.cpp.mozilla-1562827 firefox-69.0/widget/gtk/nsWindow.cpp
+--- firefox-69.0/widget/gtk/nsWindow.cpp.mozilla-1562827 2019-09-02 15:16:15.031528276 +0200
++++ firefox-69.0/widget/gtk/nsWindow.cpp 2019-09-02 15:16:15.037528254 +0200
+@@ -818,7 +818,6 @@ void nsWindow::SetParent(nsIWidget* aNew
+ if (mParent) {
+ mParent->RemoveChild(this);
+ }
+-
+ mParent = aNewParent;
+
+ GtkWidget* oldContainer = GetMozContainerWidget();
+@@ -830,88 +829,73 @@ void nsWindow::SetParent(nsIWidget* aNew
+ return;
+ }
+
++ nsWindow* newParent = static_cast(aNewParent);
++ GdkWindow* newParentWindow = nullptr;
++ GtkWidget* newContainer = nullptr;
+ if (aNewParent) {
+ aNewParent->AddChild(this);
+- ReparentNativeWidget(aNewParent);
++ newParentWindow = newParent->mGdkWindow;
++ newContainer = newParent->GetMozContainerWidget();
+ } else {
+ // aNewParent is nullptr, but reparent to a hidden window to avoid
+ // destroying the GdkWindow and its descendants.
+ // An invisible container widget is needed to hold descendant
+ // GtkWidgets.
+- GtkWidget* newContainer = EnsureInvisibleContainer();
+- GdkWindow* newParentWindow = gtk_widget_get_window(newContainer);
+- ReparentNativeWidgetInternal(aNewParent, newContainer, newParentWindow,
+- oldContainer);
+- }
+-}
+-
+-bool nsWindow::WidgetTypeSupportsAcceleration() { return !IsSmallPopup(); }
+-
+-void nsWindow::ReparentNativeWidget(nsIWidget* aNewParent) {
+- MOZ_ASSERT(aNewParent, "null widget");
+- NS_ASSERTION(!mIsDestroyed, "");
+- NS_ASSERTION(!static_cast(aNewParent)->mIsDestroyed, "");
+-
+- GtkWidget* oldContainer = GetMozContainerWidget();
+- if (!oldContainer) {
+- // The GdkWindows have been destroyed so there is nothing else to
+- // reparent.
+- MOZ_ASSERT(gdk_window_is_destroyed(mGdkWindow),
+- "live GdkWindow with no widget");
+- return;
++ newContainer = EnsureInvisibleContainer();
++ newParentWindow = gtk_widget_get_window(newContainer);
+ }
+- MOZ_ASSERT(!gdk_window_is_destroyed(mGdkWindow),
+- "destroyed GdkWindow with widget");
+
+- auto* newParent = static_cast(aNewParent);
+- GdkWindow* newParentWindow = newParent->mGdkWindow;
+- GtkWidget* newContainer = newParent->GetMozContainerWidget();
+- GtkWindow* shell = GTK_WINDOW(mShell);
+-
+- if (shell && gtk_window_get_transient_for(shell)) {
+- GtkWindow* topLevelParent =
+- GTK_WINDOW(gtk_widget_get_toplevel(newContainer));
+- gtk_window_set_transient_for(shell, topLevelParent);
+- }
+-
+- ReparentNativeWidgetInternal(aNewParent, newContainer, newParentWindow,
+- oldContainer);
+-}
+-
+-void nsWindow::ReparentNativeWidgetInternal(nsIWidget* aNewParent,
+- GtkWidget* aNewContainer,
+- GdkWindow* aNewParentWindow,
+- GtkWidget* aOldContainer) {
+- if (!aNewContainer) {
++ if (!newContainer) {
+ // The new parent GdkWindow has been destroyed.
+- MOZ_ASSERT(!aNewParentWindow || gdk_window_is_destroyed(aNewParentWindow),
++ MOZ_ASSERT(!newParentWindow || gdk_window_is_destroyed(newParentWindow),
+ "live GdkWindow with no widget");
+ Destroy();
+ } else {
+- if (aNewContainer != aOldContainer) {
+- MOZ_ASSERT(!gdk_window_is_destroyed(aNewParentWindow),
++ if (newContainer != oldContainer) {
++ MOZ_ASSERT(!gdk_window_is_destroyed(newParentWindow),
+ "destroyed GdkWindow with widget");
+- SetWidgetForHierarchy(mGdkWindow, aOldContainer, aNewContainer);
++ SetWidgetForHierarchy(mGdkWindow, oldContainer, newContainer);
+
+- if (aOldContainer == gInvisibleContainer) {
++ if (oldContainer == gInvisibleContainer) {
+ CheckDestroyInvisibleContainer();
+ }
+ }
+
+- if (!mIsTopLevel) {
+- gdk_window_reparent(mGdkWindow, aNewParentWindow,
+- DevicePixelsToGdkCoordRoundDown(mBounds.x),
+- DevicePixelsToGdkCoordRoundDown(mBounds.y));
+- }
++ gdk_window_reparent(mGdkWindow, newParentWindow,
++ DevicePixelsToGdkCoordRoundDown(mBounds.x),
++ DevicePixelsToGdkCoordRoundDown(mBounds.y));
++ mToplevelParentWindow = GTK_WINDOW(gtk_widget_get_toplevel(newContainer));
+ }
+
+- auto* newParent = static_cast(aNewParent);
+ bool parentHasMappedToplevel = newParent && newParent->mHasMappedToplevel;
+ if (mHasMappedToplevel != parentHasMappedToplevel) {
+ SetHasMappedToplevel(parentHasMappedToplevel);
+ }
+ }
+
++bool nsWindow::WidgetTypeSupportsAcceleration() { return !IsSmallPopup(); }
++
++void nsWindow::ReparentNativeWidget(nsIWidget* aNewParent) {
++ MOZ_ASSERT(aNewParent, "null widget");
++ MOZ_ASSERT(!mIsDestroyed, "");
++ MOZ_ASSERT(!static_cast(aNewParent)->mIsDestroyed, "");
++ MOZ_ASSERT(!gdk_window_is_destroyed(mGdkWindow),
++ "destroyed GdkWindow with widget");
++
++ MOZ_ASSERT(
++ !mParent,
++ "nsWindow::ReparentNativeWidget() works on toplevel windows only.");
++
++ auto* newParent = static_cast(aNewParent);
++ GtkWindow* newParentWidget = GTK_WINDOW(newParent->GetGtkWidget());
++ GtkWindow* shell = GTK_WINDOW(mShell);
++
++ if (shell && gtk_window_get_transient_for(shell)) {
++ gtk_window_set_transient_for(shell, newParentWidget);
++ mToplevelParentWindow = newParentWidget;
++ }
++}
++
+ void nsWindow::SetModal(bool aModal) {
+ LOG(("nsWindow::SetModal [%p] %d\n", (void*)this, aModal));
+ if (mIsDestroyed) return;
+diff -up firefox-69.0/widget/gtk/nsWindow.h.mozilla-1562827 firefox-69.0/widget/gtk/nsWindow.h
diff --git a/mozilla-1567434-1.patch b/mozilla-1567434-1.patch
new file mode 100644
index 0000000..631645b
--- /dev/null
+++ b/mozilla-1567434-1.patch
@@ -0,0 +1,205 @@
+diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h
+--- a/widget/gtk/nsWindow.h
++++ b/widget/gtk/nsWindow.h
+@@ -487,6 +487,7 @@
+ GtkWidget* mShell;
+ MozContainer* mContainer;
+ GdkWindow* mGdkWindow;
++ GtkWindow* mToplevelParentWindow;
+ bool mWindowShouldStartDragging = false;
+ PlatformCompositorWidgetDelegate* mCompositorWidgetDelegate;
+
+diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
+--- a/widget/gtk/nsWindow.cpp
++++ b/widget/gtk/nsWindow.cpp
+@@ -401,6 +401,7 @@
+ mContainer = nullptr;
+ mGdkWindow = nullptr;
+ mShell = nullptr;
++ mToplevelParentWindow = nullptr;
+ mCompositorWidgetDelegate = nullptr;
+ mHasMappedToplevel = false;
+ mIsFullyObscured = false;
+@@ -1144,6 +1145,8 @@
+ nsWindow* window =
+ static_cast(gVisibleWaylandPopupWindows->data);
+ if (window->mPopupType != ePopupTypeTooltip) break;
++ LOG(("nsWindow::HideWaylandTooltips [%p] hidding tooltip [%p].\n",
++ (void*)this, window));
+ window->HideWaylandWindow();
+ gVisibleWaylandPopupWindows = g_list_delete_link(
+ gVisibleWaylandPopupWindows, gVisibleWaylandPopupWindows);
+@@ -1172,9 +1175,12 @@
+ // before we open another one on that level. It means that every open
+ // popup needs to have an unique parent.
+ GtkWidget* nsWindow::ConfigureWaylandPopupWindows() {
++ LOG(("nsWindow::ConfigureWaylandPopupWindows [%p]\n", (void*)this));
++
+ // Check if we're already configured.
+ if (gVisibleWaylandPopupWindows &&
+ g_list_find(gVisibleWaylandPopupWindows, this)) {
++ LOG(("...[%p] is already configured.\n", (void*)this));
+ return GTK_WIDGET(gtk_window_get_transient_for(GTK_WINDOW(mShell)));
+ }
+
+@@ -1182,9 +1188,15 @@
+ // as it's short lived temporary window.
+ HideWaylandTooltips();
+
+- GtkWindow* parentWidget = nullptr;
++ GtkWindow* parentWidget = mToplevelParentWindow;
+ if (gVisibleWaylandPopupWindows) {
++ LOG(("... there's visible active popup [%p]\n",
++ gVisibleWaylandPopupWindows->data));
++
+ if (mPopupType == ePopupTypeTooltip) {
++ LOG(("...[%p] is tooltip, parent [%p]\n", (void*)this,
++ gVisibleWaylandPopupWindows->data));
++
+ // Attach tooltip window to the latest popup window
+ // to have both visible.
+ nsWindow* window =
+@@ -1200,12 +1212,19 @@
+ // nsWindow::Create()) or we're toplevel popup without parent.
+ // In both cases just use parent which was passed to nsWindow::Create().
+ if (!menuPopupFrame) {
+- return GTK_WIDGET(gtk_window_get_transient_for(GTK_WINDOW(mShell)));
++ LOG(("...[%p] menuPopupFrame = null, using given parent widget [%p]\n",
++ (void*)this, parentWidget));
++ return GTK_WIDGET(parentWidget);
+ }
+
+ nsWindow* parentWindow =
+ static_cast(menuPopupFrame->GetParentMenuWidget());
++ LOG(("...[%p] GetParentMenuWidget() = %p\n", (void*)this, parentWindow));
++
+ if (!parentWindow) {
++ LOG(("...[%p] using active/visible popups as a parent [%p]\n",
++ (void*)this, gVisibleWaylandPopupWindows->data));
++
+ // We're toplevel popup menu attached to another menu. Just use our
+ // latest popup as a parent.
+ parentWindow =
+@@ -1234,10 +1253,10 @@
+ }
+ }
+
++ MOZ_ASSERT(parentWidget, "Missing parent widget for wayland popup!");
+ if (parentWidget) {
++ LOG(("...[%p] set parent widget [%p]\n", (void*)this, parentWidget));
+ gtk_window_set_transient_for(GTK_WINDOW(mShell), parentWidget);
+- } else {
+- parentWidget = gtk_window_get_transient_for(GTK_WINDOW(mShell));
+ }
+ gVisibleWaylandPopupWindows =
+ g_list_prepend(gVisibleWaylandPopupWindows, this);
+@@ -1248,9 +1267,11 @@
+ static void NativeMoveResizeWaylandPopupCallback(
+ GdkWindow* window, const GdkRectangle* flipped_rect,
+ const GdkRectangle* final_rect, gboolean flipped_x, gboolean flipped_y,
+- void* unused) {
+- LOG(("%s flipped %d %d\n", __FUNCTION__, flipped_rect->x, flipped_rect->y));
+- LOG(("%s final %d %d\n", __FUNCTION__, final_rect->x, final_rect->y));
++ void* aWindow) {
++ LOG(("%s [%p] flipped %d %d\n", __FUNCTION__, aWindow, flipped_rect->x,
++ flipped_rect->y));
++ LOG(("%s [%p] final %d %d\n", __FUNCTION__, aWindow, final_rect->x,
++ final_rect->y));
+ }
+ #endif
+
+@@ -1264,6 +1285,8 @@
+ // Compositor may be confused by windows with width/height = 0
+ // and positioning such windows leads to Bug 1555866.
+ if (!AreBoundsSane()) {
++ LOG(("nsWindow::NativeMoveResizeWaylandPopup [%p] Bounds are not sane\n",
++ (void*)this));
+ return;
+ }
+
+@@ -1277,6 +1300,8 @@
+ // - gdk_window_move_to_rect() is not available
+ // - the widget doesn't have a valid GdkWindow
+ if (!sGdkWindowMoveToRect || !gdkWindow) {
++ LOG(("nsWindow::NativeMoveResizeWaylandPopup [%p] use gtk_window_move()\n",
++ (void*)this));
+ gtk_window_move(GTK_WINDOW(mShell), aPosition->x, aPosition->y);
+ return;
+ }
+@@ -1302,8 +1327,12 @@
+ }
+ LOG((" request result %d %d\n", rect.x, rect.y));
+ #ifdef DEBUG
+- g_signal_connect(gdkWindow, "moved-to-rect",
+- G_CALLBACK(NativeMoveResizeWaylandPopupCallback), this);
++ if (!g_signal_handler_find(
++ gdkWindow, G_SIGNAL_MATCH_FUNC, 0, 0, nullptr,
++ FuncToGpointer(NativeMoveResizeWaylandPopupCallback), this)) {
++ g_signal_connect(gdkWindow, "moved-to-rect",
++ G_CALLBACK(NativeMoveResizeWaylandPopupCallback), this);
++ }
+ #endif
+
+ GdkGravity rectAnchor = GDK_GRAVITY_NORTH_WEST;
+@@ -3508,7 +3537,6 @@
+ GtkWidget* parentMozContainer = nullptr;
+ GtkContainer* parentGtkContainer = nullptr;
+ GdkWindow* parentGdkWindow = nullptr;
+- GtkWindow* topLevelParent = nullptr;
+ nsWindow* parentnsWindow = nullptr;
+ GtkWidget* eventWidget = nullptr;
+ bool drawToContainer = false;
+@@ -3534,7 +3562,8 @@
+
+ // get the toplevel window just in case someone needs to use it
+ // for setting transients or whatever.
+- topLevelParent = GTK_WINDOW(gtk_widget_get_toplevel(parentMozContainer));
++ mToplevelParentWindow =
++ GTK_WINDOW(gtk_widget_get_toplevel(parentMozContainer));
+ }
+
+ if (!mIsX11Display) {
+@@ -3542,7 +3571,7 @@
+ // eWindowType_child is not supported on Wayland. Just switch to toplevel
+ // as a workaround.
+ mWindowType = eWindowType_toplevel;
+- } else if (mWindowType == eWindowType_popup && !topLevelParent) {
++ } else if (mWindowType == eWindowType_popup && !mToplevelParentWindow) {
+ // Workaround for Wayland where the popup windows always need to have
+ // parent window. For example webrtc ui is a popup window without parent.
+ mWindowType = eWindowType_toplevel;
+@@ -3677,7 +3706,7 @@
+ gdk_get_program_class());
+ gtk_window_set_type_hint(GTK_WINDOW(mShell),
+ GDK_WINDOW_TYPE_HINT_DIALOG);
+- gtk_window_set_transient_for(GTK_WINDOW(mShell), topLevelParent);
++ gtk_window_set_transient_for(GTK_WINDOW(mShell), mToplevelParentWindow);
+ } else if (mWindowType == eWindowType_popup) {
+ gtk_window_set_wmclass(GTK_WINDOW(mShell), "Popup",
+ gdk_get_program_class());
+@@ -3730,10 +3759,11 @@
+ }
+ gtk_window_set_type_hint(GTK_WINDOW(mShell), gtkTypeHint);
+
+- if (topLevelParent) {
++ if (mToplevelParentWindow) {
+ LOG(("nsWindow::Create [%p] Set popup parent %p\n", (void*)this,
+- topLevelParent));
+- gtk_window_set_transient_for(GTK_WINDOW(mShell), topLevelParent);
++ mToplevelParentWindow));
++ gtk_window_set_transient_for(GTK_WINDOW(mShell),
++ mToplevelParentWindow);
+ }
+
+ // We need realized mShell at NativeMove().
+@@ -4011,7 +4041,8 @@
+ #endif
+ }
+
+- LOG(("nsWindow [%p]\n", (void*)this));
++ LOG(("nsWindow [%p] %s\n", (void*)this,
++ mWindowType == eWindowType_toplevel ? "Toplevel" : "Popup"));
+ if (mShell) {
+ LOG(("\tmShell %p mContainer %p mGdkWindow %p 0x%lx\n", mShell, mContainer,
+ mGdkWindow, mIsX11Display ? gdk_x11_window_get_xid(mGdkWindow) : 0));
+
diff --git a/mozilla-1567434-2.patch b/mozilla-1567434-2.patch
new file mode 100644
index 0000000..966118a
--- /dev/null
+++ b/mozilla-1567434-2.patch
@@ -0,0 +1,35 @@
+diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
+--- a/widget/gtk/nsWindow.cpp
++++ b/widget/gtk/nsWindow.cpp
+@@ -1208,6 +1208,7 @@
+ if (frame) {
+ menuPopupFrame = do_QueryFrame(frame);
+ }
++
+ // The popup is not fully created yet (we're called from
+ // nsWindow::Create()) or we're toplevel popup without parent.
+ // In both cases just use parent which was passed to nsWindow::Create().
+@@ -1217,10 +1218,22 @@
+ return GTK_WIDGET(parentWidget);
+ }
+
++ LOG(("...[%p] is %s\n", (void*)this,
++ menuPopupFrame->IsContextMenu() ? "context menu" : "popup"));
++
+ nsWindow* parentWindow =
+ static_cast(menuPopupFrame->GetParentMenuWidget());
+ LOG(("...[%p] GetParentMenuWidget() = %p\n", (void*)this, parentWindow));
+
++ // If the popup is a regular menu but GetParentMenuWidget() returns
++ // nullptr which means it's connected non-menu parent
++ // (bookmark toolbar for instance).
++ // In this case use a parent given at nsWindow::Create().
++ if (!parentWindow && !menuPopupFrame->IsContextMenu()) {
++ parentWindow =
++ get_window_for_gtk_widget(GTK_WIDGET(mToplevelParentWindow));
++ }
++
+ if (!parentWindow) {
+ LOG(("...[%p] using active/visible popups as a parent [%p]\n",
+ (void*)this, gVisibleWaylandPopupWindows->data));
+
diff --git a/mozilla-1573813.patch b/mozilla-1573813.patch
new file mode 100644
index 0000000..e9fca07
--- /dev/null
+++ b/mozilla-1573813.patch
@@ -0,0 +1,29 @@
+diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
+--- a/widget/gtk/nsWindow.cpp
++++ b/widget/gtk/nsWindow.cpp
+@@ -6577,11 +6577,22 @@
+ }
+
+ gint nsWindow::GdkScaleFactor() {
++ // For popup windows with parent window we need to get scale factor of the
++ // parent window. Otherwise the scale factor of the popup is not updated
++ // during it's hidden.
++ GdkWindow* scaledGdkWindow = mGdkWindow;
++ if (mToplevelParentWindow) {
++ scaledGdkWindow = gtk_widget_get_window(GTK_WIDGET(mToplevelParentWindow));
++ // Fallback for windows which parent has been unrealized.
++ if (!scaledGdkWindow) {
++ scaledGdkWindow = mGdkWindow;
++ }
++ }
+ // Available as of GTK 3.10+
+ static auto sGdkWindowGetScaleFactorPtr =
+ (gint(*)(GdkWindow*))dlsym(RTLD_DEFAULT, "gdk_window_get_scale_factor");
+- if (sGdkWindowGetScaleFactorPtr && mGdkWindow)
+- return (*sGdkWindowGetScaleFactorPtr)(mGdkWindow);
++ if (sGdkWindowGetScaleFactorPtr && scaledGdkWindow)
++ return (*sGdkWindowGetScaleFactorPtr)(scaledGdkWindow);
+ return ScreenHelperGTK::GetGTKMonitorScaleFactor();
+ }
+
+
diff --git a/sources b/sources
index 1bfcc4b..e77e6c4 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (cbindgen-vendor.tar.xz) = b0df3a8624efc488726211c99ac8a69c928d0bef24c2f7eafc6971be7ce2fafd54fba9330afd7e61ffe3a0d799bc5d994fa9f11f2da88cd93924c9347bfc4355
-SHA512 (icecat-68.0.2-gnu3.tar.bz2) = 88cb18f8097c3581ef9cecad21a682e23512549bac411217fcbd4789d57f21744aab165d52aa2e5c1538ce877e58fd2f3b3d802d9ad8f47bf37b867bcbc4b28f
-SHA512 (icecat-68.0.2-langpacks.tar.gz) = 4361c78b48ef0a9792d0fdba03c2ea7c4f880ba083d62e5ca83c9f65ec4cc3917b4020ebe16bb1a07faa780633c8e25aa7369f289ff54c0472158f993e703f1f
+SHA512 (cbindgen-vendor.tar.xz) = 2daac8505b71c9672020b6d407f8ec826cc978629a2e44857f5e80a8cedc79162aea2fb01179683542e505148249827523e59e58e9c54ab0d298c5d07a555f10
+SHA512 (icecat-68.1.0-gnu1.tar.bz2) = b04cb30a1a40c97fc1a38e67836c401230612645dfe2815ac634977362c4ef2883d6b15eaa094092ea44d75de768ac7c725c4897cb1210334081781f61d843e0
+SHA512 (icecat-68.1.0-langpacks.tar.gz) = ecda5e45c39ebcb366aa13e1d58d849acf8b8b21066ef5e0784c0e46e0900fe96e48f88a7fb1877f2778dac0300d792663eac00d516cd65eef51736d7f9880b1
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From c0c70fa2c937dac5921096c1e359bc3bf8ce6d92 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Tue, 3 Sep 2019 14:03:13 +0200
Subject: [PATCH 067/473] Do not patch (1512162) PPC64 builds
---
icecat.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/icecat.spec b/icecat.spec
index ee400de..42f5aff 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -378,7 +378,7 @@ tar -xf %{SOURCE5}
%endif
%ifarch ppc64 ppc64le
-%patch423 -p1 -b .1512162
+#%%patch423 -p1 -b .1512162
%endif
%patch424 -p1 -b .mozilla-1566876-webrtc-ind
%patch425 -p1 -b .mozilla-1568569
From 34038568c190f0a7b656811a9d060161b38a2072 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Tue, 3 Sep 2019 18:38:38 +0200
Subject: [PATCH 068/473] Fix latest changelog entry
---
icecat.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/icecat.spec b/icecat.spec
index 42f5aff..d015b21 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -815,7 +815,7 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%changelog
* Tue Sep 03 2019 Antonio Trande - 68.1.0-1.gnu1
- Mozilla release 68.1.0
-- Inglobe Wayland patches from Firefox 68
+- Incorporate Wayland patches from Firefox 68
* Sun Sep 01 2019 Antonio Trande - 68.0.2-5.gnu3
- Rebuild after retiring of Python2
From 06e06c631a88a7b1bb5f2ed0a653e11c09ca03e4 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Wed, 4 Sep 2019 12:47:51 +0200
Subject: [PATCH 069/473] Reintroduce icecat.rpmlintrc
---
icecat.rpmlintrc | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
create mode 100644 icecat.rpmlintrc
diff --git a/icecat.rpmlintrc b/icecat.rpmlintrc
new file mode 100644
index 0000000..c2c8f6f
--- /dev/null
+++ b/icecat.rpmlintrc
@@ -0,0 +1,40 @@
+# Whitelisting errors
+# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#whitelist
+# Edited by sagitter (sagitter AT fedoraproject dot org)
+
+# KNOWN BUGS:
+#
+
+# TESTS:
+##### SRPMs #####
+
+# ifarch applied patches are okay
+# https://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support
+addFilter(r'(%ifarch-applied-patch) Patch*')
+
+# ERRORS:
+##### RPMs #####
+
+# chroot function (??)
+addFilter(r'(missing-call-to-chdir-with-chroot) %{_libdir}/icecat/libmozsandbox.so')
+addFilter(r'(missing-call-to-setgroups-before-setuid) %{_libdir}/icecat/libxul.so')
+
+# Expected on FF browser
+# https://support.mozilla.org/en-US/questions/1045418
+addFilter(r'(zero-length) %{_libdir}/icecat/chrome.manifest')
+addFilter(r'(zero-length) %{_libdir}/icecat/browser/chrome.manifest')
+
+# False positive
+addFilter(r'(dangling-symlink) %{_libdir}/icecat/dictionaries %{_datadir}/myspell')
+addFilter(r'(unversioned-explicit-provides) webclient')
+
+# WARNINGS:
+##### RPMs #####
+
+addFilter(r'(no-manual-page-for-binary) icecat-wayland')
+
+##### SRPMs #####
+# Different file size due to the signature of the source code tarbz archive
+addFilter(r'file-size-mismatch')
+
+addFilter(r'(invalid-url) Source*')
From 43d5b0d92fc46881b7411ca8fd879fea961e12e7 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Wed, 4 Sep 2019 12:49:49 +0200
Subject: [PATCH 070/473] Reintroduce icecat.rpmlintrc
---
icecat.rpmlintrc | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
create mode 100644 icecat.rpmlintrc
diff --git a/icecat.rpmlintrc b/icecat.rpmlintrc
new file mode 100644
index 0000000..c2c8f6f
--- /dev/null
+++ b/icecat.rpmlintrc
@@ -0,0 +1,40 @@
+# Whitelisting errors
+# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#whitelist
+# Edited by sagitter (sagitter AT fedoraproject dot org)
+
+# KNOWN BUGS:
+#
+
+# TESTS:
+##### SRPMs #####
+
+# ifarch applied patches are okay
+# https://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support
+addFilter(r'(%ifarch-applied-patch) Patch*')
+
+# ERRORS:
+##### RPMs #####
+
+# chroot function (??)
+addFilter(r'(missing-call-to-chdir-with-chroot) %{_libdir}/icecat/libmozsandbox.so')
+addFilter(r'(missing-call-to-setgroups-before-setuid) %{_libdir}/icecat/libxul.so')
+
+# Expected on FF browser
+# https://support.mozilla.org/en-US/questions/1045418
+addFilter(r'(zero-length) %{_libdir}/icecat/chrome.manifest')
+addFilter(r'(zero-length) %{_libdir}/icecat/browser/chrome.manifest')
+
+# False positive
+addFilter(r'(dangling-symlink) %{_libdir}/icecat/dictionaries %{_datadir}/myspell')
+addFilter(r'(unversioned-explicit-provides) webclient')
+
+# WARNINGS:
+##### RPMs #####
+
+addFilter(r'(no-manual-page-for-binary) icecat-wayland')
+
+##### SRPMs #####
+# Different file size due to the signature of the source code tarbz archive
+addFilter(r'file-size-mismatch')
+
+addFilter(r'(invalid-url) Source*')
From 89598c0f2bf5a3c9e6a605b1824ec2bfee10c759 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Wed, 23 Oct 2019 12:04:08 +0200
Subject: [PATCH 071/473] Mozilla release 68.2.0
---
.gitignore | 2 ++
icecat-lang_download.sh | 2 +-
icecat.rpmlintrc | 40 ----------------------------------------
icecat.spec | 5 ++++-
sources | 4 ++--
5 files changed, 9 insertions(+), 44 deletions(-)
delete mode 100644 icecat.rpmlintrc
diff --git a/.gitignore b/.gitignore
index 722505b..654d0b0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -90,3 +90,5 @@
/icecat-68.0.2-gnu3.tar.bz2
/icecat-68.1.0-gnu1.tar.bz2
/icecat-68.1.0-langpacks.tar.gz
+/icecat-68.2.0-gnu1.tar.bz2
+/icecat-68.2.0-langpacks.tar.gz
diff --git a/icecat-lang_download.sh b/icecat-lang_download.sh
index 87c6659..9a8708d 100755
--- a/icecat-lang_download.sh
+++ b/icecat-lang_download.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-VERSION=68.1.0
+VERSION=68.2.0
URL=https://ftp.mozilla.org/pub/firefox/releases/${VERSION}esr/linux-x86_64/xpi/
for u in $URL; do
diff --git a/icecat.rpmlintrc b/icecat.rpmlintrc
deleted file mode 100644
index c2c8f6f..0000000
--- a/icecat.rpmlintrc
+++ /dev/null
@@ -1,40 +0,0 @@
-# Whitelisting errors
-# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#whitelist
-# Edited by sagitter (sagitter AT fedoraproject dot org)
-
-# KNOWN BUGS:
-#
-
-# TESTS:
-##### SRPMs #####
-
-# ifarch applied patches are okay
-# https://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support
-addFilter(r'(%ifarch-applied-patch) Patch*')
-
-# ERRORS:
-##### RPMs #####
-
-# chroot function (??)
-addFilter(r'(missing-call-to-chdir-with-chroot) %{_libdir}/icecat/libmozsandbox.so')
-addFilter(r'(missing-call-to-setgroups-before-setuid) %{_libdir}/icecat/libxul.so')
-
-# Expected on FF browser
-# https://support.mozilla.org/en-US/questions/1045418
-addFilter(r'(zero-length) %{_libdir}/icecat/chrome.manifest')
-addFilter(r'(zero-length) %{_libdir}/icecat/browser/chrome.manifest')
-
-# False positive
-addFilter(r'(dangling-symlink) %{_libdir}/icecat/dictionaries %{_datadir}/myspell')
-addFilter(r'(unversioned-explicit-provides) webclient')
-
-# WARNINGS:
-##### RPMs #####
-
-addFilter(r'(no-manual-page-for-binary) icecat-wayland')
-
-##### SRPMs #####
-# Different file size due to the signature of the source code tarbz archive
-addFilter(r'file-size-mismatch')
-
-addFilter(r'(invalid-url) Source*')
diff --git a/icecat.spec b/icecat.spec
index d015b21..5c9284f 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -83,7 +83,7 @@ ExcludeArch: s390x
%global gnu_ver gnu1
Name: icecat
-Version: 68.1.0
+Version: 68.2.0
Release: 1.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
@@ -813,6 +813,9 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Tue Oct 22 2019 Antonio Trande - 68.2.0-1.gnu1
+- Mozilla release 68.2.0
+
* Tue Sep 03 2019 Antonio Trande - 68.1.0-1.gnu1
- Mozilla release 68.1.0
- Incorporate Wayland patches from Firefox 68
diff --git a/sources b/sources
index e77e6c4..c867c07 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
SHA512 (cbindgen-vendor.tar.xz) = 2daac8505b71c9672020b6d407f8ec826cc978629a2e44857f5e80a8cedc79162aea2fb01179683542e505148249827523e59e58e9c54ab0d298c5d07a555f10
-SHA512 (icecat-68.1.0-gnu1.tar.bz2) = b04cb30a1a40c97fc1a38e67836c401230612645dfe2815ac634977362c4ef2883d6b15eaa094092ea44d75de768ac7c725c4897cb1210334081781f61d843e0
-SHA512 (icecat-68.1.0-langpacks.tar.gz) = ecda5e45c39ebcb366aa13e1d58d849acf8b8b21066ef5e0784c0e46e0900fe96e48f88a7fb1877f2778dac0300d792663eac00d516cd65eef51736d7f9880b1
+SHA512 (icecat-68.2.0-gnu1.tar.bz2) = b478af0c0c618108e5995f857eda44da0d33c83bc19870d020f25177a35235d3353af3257b60435dd6a1b8721728537de2f06e5da80ed260c56afac40012f511
+SHA512 (icecat-68.2.0-langpacks.tar.gz) = a13a29071114438795c0a6c8bf5bd2cecc50e18a0d9298641cacc27989bfc1613c0632b66da71895cc48db76a1e7e5b10cdccd96a262f4af9d5e6844461a4c7c
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From 6dd5e95df7f949057b640899ef489601215e5be3 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Wed, 23 Oct 2019 12:05:17 +0200
Subject: [PATCH 072/473] Include icecat.rpmlintrc
---
icecat.rpmlintrc | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
create mode 100644 icecat.rpmlintrc
diff --git a/icecat.rpmlintrc b/icecat.rpmlintrc
new file mode 100644
index 0000000..c2c8f6f
--- /dev/null
+++ b/icecat.rpmlintrc
@@ -0,0 +1,40 @@
+# Whitelisting errors
+# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#whitelist
+# Edited by sagitter (sagitter AT fedoraproject dot org)
+
+# KNOWN BUGS:
+#
+
+# TESTS:
+##### SRPMs #####
+
+# ifarch applied patches are okay
+# https://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support
+addFilter(r'(%ifarch-applied-patch) Patch*')
+
+# ERRORS:
+##### RPMs #####
+
+# chroot function (??)
+addFilter(r'(missing-call-to-chdir-with-chroot) %{_libdir}/icecat/libmozsandbox.so')
+addFilter(r'(missing-call-to-setgroups-before-setuid) %{_libdir}/icecat/libxul.so')
+
+# Expected on FF browser
+# https://support.mozilla.org/en-US/questions/1045418
+addFilter(r'(zero-length) %{_libdir}/icecat/chrome.manifest')
+addFilter(r'(zero-length) %{_libdir}/icecat/browser/chrome.manifest')
+
+# False positive
+addFilter(r'(dangling-symlink) %{_libdir}/icecat/dictionaries %{_datadir}/myspell')
+addFilter(r'(unversioned-explicit-provides) webclient')
+
+# WARNINGS:
+##### RPMs #####
+
+addFilter(r'(no-manual-page-for-binary) icecat-wayland')
+
+##### SRPMs #####
+# Different file size due to the signature of the source code tarbz archive
+addFilter(r'file-size-mismatch')
+
+addFilter(r'(invalid-url) Source*')
From 5ca740adb9f347016dd8923af562451245990553 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 2 Nov 2019 13:59:27 +0100
Subject: [PATCH 073/473] Modify icecat.rpmlintrc
---
icecat.rpmlintrc | 26 ++++++++++++++++----------
icecat.spec | 10 +++++-----
2 files changed, 21 insertions(+), 15 deletions(-)
diff --git a/icecat.rpmlintrc b/icecat.rpmlintrc
index c2c8f6f..4d7dde1 100644
--- a/icecat.rpmlintrc
+++ b/icecat.rpmlintrc
@@ -1,5 +1,6 @@
# Whitelisting errors
# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#whitelist
+# https://src.fedoraproject.org/rpms/python3/blob/master/f/python3.rpmlintrc
# Edited by sagitter (sagitter AT fedoraproject dot org)
# KNOWN BUGS:
@@ -11,30 +12,35 @@
# ifarch applied patches are okay
# https://fedoraproject.org/wiki/Packaging:Guidelines#Architecture_Support
addFilter(r'(%ifarch-applied-patch) Patch*')
+# Different file size due to the signature of the source code tarbz archive
+addFilter(r'file-size-mismatch')
+
+addFilter(r'(invalid-url) Source4')
+addFilter(r'(invalid-url) Source5')
+addFilter(r'(invalid-url) Source17')
# ERRORS:
##### RPMs #####
# chroot function (??)
-addFilter(r'(missing-call-to-chdir-with-chroot) %{_libdir}/icecat/libmozsandbox.so')
-addFilter(r'(missing-call-to-setgroups-before-setuid) %{_libdir}/icecat/libxul.so')
+addFilter(r'(missing-call-to-chdir-with-chroot) /usr/lib(64)?/icecat/libmozsandbox.so')
+addFilter(r'(missing-call-to-setgroups-before-setuid) /usr/lib(64)?/icecat/libxul.so')
# Expected on FF browser
# https://support.mozilla.org/en-US/questions/1045418
-addFilter(r'(zero-length) %{_libdir}/icecat/chrome.manifest')
-addFilter(r'(zero-length) %{_libdir}/icecat/browser/chrome.manifest')
+addFilter(r'(zero-length) /usr/lib(64)?/icecat/chrome.manifest')
+addFilter(r'(zero-length) /usr/lib(64)?/icecat/browser/chrome.manifest')
+
+addFilter(r'E:library-not-linked-against-libc /usr/lib(64)?/icecat/gtk2/libmozgtk.so')
+addFilter(r'E:library-not-linked-against-libc /usr/lib(64)?/icecat/libmozgtk.so')
# False positive
-addFilter(r'(dangling-symlink) %{_libdir}/icecat/dictionaries %{_datadir}/myspell')
+addFilter(r'(dangling-symlink) /usr/lib(64)?/icecat/dictionaries /usr/share/myspell')
addFilter(r'(unversioned-explicit-provides) webclient')
# WARNINGS:
##### RPMs #####
addFilter(r'(no-manual-page-for-binary) icecat-wayland')
+addFilter(r'(no-manual-page-for-binary) icecat-x11')
-##### SRPMs #####
-# Different file size due to the signature of the source code tarbz archive
-addFilter(r'file-size-mismatch')
-
-addFilter(r'(invalid-url) Source*')
diff --git a/icecat.spec b/icecat.spec
index 5c9284f..d79f640 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -300,8 +300,8 @@ Extensions included to this version of IceCat:
Stallman's article The JavaScript Trap
* HTTPS Everywhere
- HTTPS Everywhere is an extension that encrypts your communications with many major websites,
- making your browsing more secure
+ HTTPS Everywhere is an extension that encrypts your communications with
+ many major websites, making your browsing more secure
* Tor™ Browser Button
Simple TOR network integration
@@ -316,14 +316,14 @@ Summary: GNU IceCat X11 launcher
Requires: %{name}
%description x11
The %{name}-x11 package contains launcher and desktop file
-to run GNU IceCat natively on X11.
+to run GNU IceCat native on X11.
%else
%package wayland
Summary: GNU IceCat Wayland launcher
Requires: %{name}
%description wayland
The icecat-wayland package contains launcher and desktop file
-to run GNU IceCat natively on Wayland.
+to run GNU IceCat native on Wayland.
%endif
%prep
@@ -648,7 +648,7 @@ desktop-file-install --dir $RPM_BUILD_ROOT%{_datadir}/applications %{SOURCE14}
rm -rf $RPM_BUILD_ROOT%{_bindir}/%{name}
%{__sed} -e 's/__DEFAULT_WAYLAND__/%{wayland_default}/' \
- -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE13} > %{buildroot}%{_bindir}/%{name}
+ -e 's,/__PREFIX__,%{_prefix},g' %{SOURCE13} > %{buildroot}%{_bindir}/%{name}
chmod 755 %{buildroot}%{_bindir}/%{name}
%if 0%{?wayland_backend_default}
From 035510be6dd6a462c0f4a0bf790c1f8abafc3f6a Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 9 Nov 2019 15:39:09 +0100
Subject: [PATCH 074/473] Build release 68.2.0-gnu2
---
.gitignore | 1 +
icecat.appdata.xml | 8 --------
icecat.spec | 23 ++++++++++-------------
sources | 2 +-
4 files changed, 12 insertions(+), 22 deletions(-)
diff --git a/.gitignore b/.gitignore
index 654d0b0..ce0d722 100644
--- a/.gitignore
+++ b/.gitignore
@@ -92,3 +92,4 @@
/icecat-68.1.0-langpacks.tar.gz
/icecat-68.2.0-gnu1.tar.bz2
/icecat-68.2.0-langpacks.tar.gz
+/icecat-68.2.0-gnu2.tar.bz2
diff --git a/icecat.appdata.xml b/icecat.appdata.xml
index 686c9e7..c5eda54 100644
--- a/icecat.appdata.xml
+++ b/icecat.appdata.xml
@@ -49,17 +49,9 @@
data needed during startup.
- Tor™ Browser Button
- Simple TOR network integration (requires running TOR separately at the operating system level)
-
-
Searxes
Third-party Request Blocker
-
- View Tube
- Watch videos from video sharing websites with extra options
-
http://www.gnu.org/software/gnuzilla/
diff --git a/icecat.spec b/icecat.spec
index d79f640..3fa1725 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -44,9 +44,9 @@
%global system_nss 1
%if 0%{?system_nss}
-%global nspr_version 4.19
+%global nspr_version 4.21
%global nspr_build_version %{nspr_version}
-%global nss_version 3.40.1
+%global nss_version 3.45
%global nss_build_version %{nss_version}
%endif
@@ -54,11 +54,7 @@
%bcond_without pulseaudio
%bcond_without jack
-%if 0%{?fedora} > 29
-%global with_vpx 0
-%else
%global with_vpx 1
-%endif
%if 0%{?fedora} > 30
%global wayland_backend_default 1
@@ -80,11 +76,11 @@ ExcludeArch: %{arm}
ExcludeArch: s390x
# Set new source-code build version
-%global gnu_ver gnu1
+%global gnu_ver gnu2
Name: icecat
Version: 68.2.0
-Release: 1.%{gnu_ver}%{?dist}
+Release: 2.%{gnu_ver}%{?dist}
Summary: GNU version of Firefox browser
# Tri-licensing scheme for Gnuzilla/IceCat in parentheses, and licenses for the extensions included
@@ -284,7 +280,7 @@ Requires: fedora-bookmarks
Suggests: mozilla-ublock-origin
Provides: webclient
-Provides: mozilla-https-everywhere = 20190131
+Provides: mozilla-https-everywhere = 20191107
%description
GNUZilla Icecat is a fully-free fork of Mozilla Firefox ESR.
@@ -303,10 +299,6 @@ Extensions included to this version of IceCat:
HTTPS Everywhere is an extension that encrypts your communications with
many major websites, making your browsing more secure
- * Tor™ Browser Button
- Simple TOR network integration
- (requires running TOR separately at the operating system level)
-
* Searxes
Third-party Request Blocker
@@ -813,6 +805,11 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
%endif
%changelog
+* Fri Nov 08 2019 Antonio Trande - 68.2.0-2.gnu2
+- Build release 68.2.0-gnu2
+- HTTPS-Everywhere 2019_11_7
+- Use always system vpx (Fedora 30+)
+
* Tue Oct 22 2019 Antonio Trande - 68.2.0-1.gnu1
- Mozilla release 68.2.0
diff --git a/sources b/sources
index c867c07..53c7dd8 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
SHA512 (cbindgen-vendor.tar.xz) = 2daac8505b71c9672020b6d407f8ec826cc978629a2e44857f5e80a8cedc79162aea2fb01179683542e505148249827523e59e58e9c54ab0d298c5d07a555f10
-SHA512 (icecat-68.2.0-gnu1.tar.bz2) = b478af0c0c618108e5995f857eda44da0d33c83bc19870d020f25177a35235d3353af3257b60435dd6a1b8721728537de2f06e5da80ed260c56afac40012f511
+SHA512 (icecat-68.2.0-gnu2.tar.bz2) = 1db3e55f774b30552cd7bf94de1ebe27e8ceedcac349f2e7419626d818aeaff53de2257064a79070a9324c6635b417f74b33e482d2c4d860f11c9b22dce4949d
SHA512 (icecat-68.2.0-langpacks.tar.gz) = a13a29071114438795c0a6c8bf5bd2cecc50e18a0d9298641cacc27989bfc1613c0632b66da71895cc48db76a1e7e5b10cdccd96a262f4af9d5e6844461a4c7c
SHA512 (icecat-COPYING-licensefiles.tar.gz) = ed541845170f1d209e322b0def3248d571e0c42c4a17c74e83197e743bd8a128a1475f5312d905c8e70d047eddeac17e604373892eb6d5f1720c5c361849c42c
From e4f3aeecf8f94166e91589e2dcd60037a4ebab82 Mon Sep 17 00:00:00 2001
From: sagitter
Date: Sat, 9 Nov 2019 18:15:31 +0100
Subject: [PATCH 075/473] Patched for Mozilla bug #1556602
---
icecat.spec | 3 +
mozilla-1556602.patch | 1154 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 1157 insertions(+)
create mode 100644 mozilla-1556602.patch
diff --git a/icecat.spec b/icecat.spec
index 3fa1725..68da9e8 100644
--- a/icecat.spec
+++ b/icecat.spec
@@ -164,6 +164,7 @@ Patch226: rhbz-1354671.patch
#Patch413: mozilla-1353817.patch
Patch414: Bug-1238661---fix-mozillaSignalTrampoline-to-work-.patch
Patch417: bug1375074-save-restore-x28.patch
+Patch418: mozilla-1556602.patch
# Fix crash on ppc64le (mozilla#1512162)
Patch423: mozilla-1512162.patch
@@ -372,6 +373,7 @@ tar -xf %{SOURCE5}
%ifarch ppc64 ppc64le
#%%patch423 -p1 -b .1512162
%endif
+%patch418 -p1 -b .mozilla-1556602
%patch424 -p1 -b .mozilla-1566876-webrtc-ind
%patch425 -p1 -b .mozilla-1568569
@@ -809,6 +811,7 @@ appstream-util validate-relax --nonet $RPM_BUILD_ROOT%{_metainfodir}/*.appdata.x
- Build release 68.2.0-gnu2
- HTTPS-Everywhere 2019_11_7
- Use always system vpx (Fedora 30+)
+- Patched for Mozilla bug #1556602
* Tue Oct 22 2019 Antonio Trande - 68.2.0-1.gnu1
- Mozilla release 68.2.0
diff --git a/mozilla-1556602.patch b/mozilla-1556602.patch
new file mode 100644
index 0000000..d3f07bf
--- /dev/null
+++ b/mozilla-1556602.patch
@@ -0,0 +1,1154 @@
+
+# HG changeset patch
+# User Emilio Cobos Álvarez
+# Date 1560893536 0
+# Node ID 046dd0da3b8e606ae33895248cd41e4ef03a4fcc
+# Parent 8567a308ac7a8e2087903aedd1d92032c9c7eb60
+Bug 1556602 - Fix various warnings with rust 1.37 nightly. r=froydnj
+
+In particular:
+
+ * trait objects without an explicit `dyn` are deprecated
+ * `...` range patterns are deprecated
+
+I think these shouldn't really warn by default and should be clippy / opt-in
+lints, but anyway, doesn't hurt.
+
+Differential Revision: https://phabricator.services.mozilla.com/D35135
+
+diff --git a/media/webrtc/signaling/src/sdp/rsdparsa_capi/src/lib.rs b/media/webrtc/signaling/src/sdp/rsdparsa_capi/src/lib.rs
+--- a/media/webrtc/signaling/src/sdp/rsdparsa_capi/src/lib.rs
++++ b/media/webrtc/signaling/src/sdp/rsdparsa_capi/src/lib.rs
+@@ -180,17 +180,17 @@ pub unsafe extern "C" fn sdp_add_media_s
+ }
+ };
+
+ // Check that the provided address type is valid. The rust parser will find out
+ // on his own which address type was provided
+ match addr_type {
+ // enum AddrType { kAddrTypeNone, kIPv4, kIPv6 };
+ // kAddrTypeNone is explicitly not covered as it is an 'invalid' flag
+- 1...2 => (),
++ 1 | 2 => (),
+ _ => {
+ return NS_ERROR_INVALID_ARG;
+ }
+ }
+
+ match (*session).add_media(media_type, direction, port as u32, protocol, addr_str) {
+ Ok(_) => NS_OK,
+ Err(_) => NS_ERROR_INVALID_ARG
+diff --git a/servo/components/malloc_size_of/lib.rs b/servo/components/malloc_size_of/lib.rs
+--- a/servo/components/malloc_size_of/lib.rs
++++ b/servo/components/malloc_size_of/lib.rs
+@@ -87,17 +87,17 @@ use std::ops::Range;
+ use std::ops::{Deref, DerefMut};
+ use std::os::raw::c_void;
+ use void::Void;
+
+ /// A C function that takes a pointer to a heap allocation and returns its size.
+ type VoidPtrToSizeFn = unsafe extern "C" fn(ptr: *const c_void) -> usize;
+
+ /// A closure implementing a stateful predicate on pointers.
+-type VoidPtrToBoolFnMut = FnMut(*const c_void) -> bool;
++type VoidPtrToBoolFnMut = dyn FnMut(*const c_void) -> bool;
+
+ /// Operations used when measuring heap usage of data structures.
+ pub struct MallocSizeOfOps {
+ /// A function that returns the size of a heap allocation.
+ size_of_op: VoidPtrToSizeFn,
+
+ /// Like `size_of_op`, but can take an interior pointer. Optional because
+ /// not all allocators support this operation. If it's not provided, some
+diff --git a/servo/components/selectors/context.rs b/servo/components/selectors/context.rs
+--- a/servo/components/selectors/context.rs
++++ b/servo/components/selectors/context.rs
+@@ -129,17 +129,17 @@ where
+ /// MatchingContext immutable again.
+ nesting_level: usize,
+
+ /// Whether we're inside a negation or not.
+ in_negation: bool,
+
+ /// An optional hook function for checking whether a pseudo-element
+ /// should match when matching_mode is ForStatelessPseudoElement.
+- pub pseudo_element_matching_fn: Option<&'a Fn(&Impl::PseudoElement) -> bool>,
++ pub pseudo_element_matching_fn: Option<&'a dyn Fn(&Impl::PseudoElement) -> bool>,
+
+ /// Extra implementation-dependent matching data.
+ pub extra_data: Impl::ExtraMatchingData,
+
+ quirks_mode: QuirksMode,
+ classes_and_ids_case_sensitivity: CaseSensitivity,
+ _impl: ::std::marker::PhantomData,
+ }
+diff --git a/servo/components/style/animation.rs b/servo/components/style/animation.rs
+--- a/servo/components/style/animation.rs
++++ b/servo/components/style/animation.rs
+@@ -483,17 +483,17 @@ pub fn start_transitions_if_applicable(
+ had_animations
+ }
+
+ fn compute_style_for_animation_step(
+ context: &SharedStyleContext,
+ step: &KeyframesStep,
+ previous_style: &ComputedValues,
+ style_from_cascade: &Arc,
+- font_metrics_provider: &FontMetricsProvider,
++ font_metrics_provider: &dyn FontMetricsProvider,
+ ) -> Arc
+ where
+ E: TElement,
+ {
+ match step.value {
+ KeyframesStepValue::ComputedValues => style_from_cascade.clone(),
+ KeyframesStepValue::Declarations {
+ block: ref declarations,
+@@ -668,17 +668,17 @@ pub enum AnimationUpdate {
+ /// transitions in response to a style change (that is,
+ /// consider_starting_transitions + maybe_start_animations, but handling
+ /// canceled animations, duration changes, etc, there instead of here), and this
+ /// function should be only about the style update in response of a transition.
+ pub fn update_style_for_animation(
+ context: &SharedStyleContext,
+ animation: &Animation,
+ style: &mut Arc,
+- font_metrics_provider: &FontMetricsProvider,
++ font_metrics_provider: &dyn FontMetricsProvider,
+ ) -> AnimationUpdate
+ where
+ E: TElement,
+ {
+ debug!("update_style_for_animation: {:?}", animation);
+ debug_assert!(!animation.is_expired());
+
+ match *animation {
+diff --git a/servo/components/style/parser.rs b/servo/components/style/parser.rs
+--- a/servo/components/style/parser.rs
++++ b/servo/components/style/parser.rs
+@@ -46,33 +46,33 @@ pub struct ParserContext<'a> {
+ pub url_data: &'a UrlExtraData,
+ /// The current rule type, if any.
+ pub rule_type: Option,
+ /// The mode to use when parsing.
+ pub parsing_mode: ParsingMode,
+ /// The quirks mode of this stylesheet.
+ pub quirks_mode: QuirksMode,
+ /// The active error reporter, or none if error reporting is disabled.
+- error_reporter: Option<&'a ParseErrorReporter>,
++ error_reporter: Option<&'a dyn ParseErrorReporter>,
+ /// The currently active namespaces.
+ pub namespaces: Option<&'a Namespaces>,
+ /// The use counters we want to record while parsing style rules, if any.
+ pub use_counters: Option<&'a UseCounters>,
+ }
+
+ impl<'a> ParserContext<'a> {
+ /// Create a parser context.
+ #[inline]
+ pub fn new(
+ stylesheet_origin: Origin,
+ url_data: &'a UrlExtraData,
+ rule_type: Option,
+ parsing_mode: ParsingMode,
+ quirks_mode: QuirksMode,
+- error_reporter: Option<&'a ParseErrorReporter>,
++ error_reporter: Option<&'a dyn ParseErrorReporter>,
+ use_counters: Option<&'a UseCounters>,
+ ) -> Self {
+ Self {
+ stylesheet_origin,
+ url_data,
+ rule_type,
+ parsing_mode,
+ quirks_mode,
+@@ -84,17 +84,17 @@ impl<'a> ParserContext<'a> {
+
+ /// Create a parser context for on-the-fly parsing in CSSOM
+ #[inline]
+ pub fn new_for_cssom(
+ url_data: &'a UrlExtraData,
+ rule_type: Option,
+ parsing_mode: ParsingMode,
+ quirks_mode: QuirksMode,
+- error_reporter: Option<&'a ParseErrorReporter>,
++ error_reporter: Option<&'a dyn ParseErrorReporter>,
+ use_counters: Option<&'a UseCounters>,
+ ) -> Self {
+ Self::new(
+ Origin::Author,
+ url_data,
+ rule_type,
+ parsing_mode,
+ quirks_mode,
+diff --git a/servo/components/style/properties/cascade.rs b/servo/components/style/properties/cascade.rs
+--- a/servo/components/style/properties/cascade.rs
++++ b/servo/components/style/properties/cascade.rs
+@@ -77,17 +77,17 @@ pub fn cascade(
+ device: &Device,
+ pseudo: Option<&PseudoElement>,
+ rule_node: &StrongRuleNode,
+ guards: &StylesheetGuards,
+ parent_style: Option<&ComputedValues>,
+ parent_style_ignoring_first_line: Option<&ComputedValues>,
+ layout_parent_style: Option<&ComputedValues>,
+ visited_rules: Option<&StrongRuleNode>,
+- font_metrics_provider: &FontMetricsProvider,
++ font_metrics_provider: &dyn FontMetricsProvider,
+ quirks_mode: QuirksMode,
+ rule_cache: Option<&RuleCache>,
+ rule_cache_conditions: &mut RuleCacheConditions,
+ element: Option,
+ ) -> Arc
+ where
+ E: TElement,
+ {
+@@ -111,17 +111,17 @@ where
+ fn cascade_rules(
+ device: &Device,
+ pseudo: Option<&PseudoElement>,
+ rule_node: &StrongRuleNode,
+ guards: &StylesheetGuards,
+ parent_style: Option<&ComputedValues>,
+ parent_style_ignoring_first_line: Option<&ComputedValues>,
+ layout_parent_style: Option<&ComputedValues>,
+- font_metrics_provider: &FontMetricsProvider,
++ font_metrics_provider: &dyn FontMetricsProvider,
+ cascade_mode: CascadeMode,
+ quirks_mode: QuirksMode,
+ rule_cache: Option<&RuleCache>,
+ rule_cache_conditions: &mut RuleCacheConditions,
+ element: Option,
+ ) -> Arc