summaryrefslogtreecommitdiffstats
path: root/testing
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2022-12-14 21:19:34 +0000
committer Eric Hameleers <alien@slackware.com>2022-12-14 23:46:49 +0100
commitfc0ff5a5d7c45f929eb214b3147aa538e736e2aa (patch)
tree50597023627f75dde70715de78423e655589cdbd /testing
parentac5857bb77042a1843e9436852630091adc75982 (diff)
downloadcurrent-fc0ff5a5d7c45f929eb214b3147aa538e736e2aa.tar.gz
current-fc0ff5a5d7c45f929eb214b3147aa538e736e2aa.tar.xz
Wed Dec 14 21:19:34 UTC 202220221214211934
a/bash-5.2.015-x86_64-1.txz: Upgraded. a/tcsh-6.24.06-x86_64-1.txz: Upgraded. ap/inxi-3.3.24_1-noarch-1.txz: Upgraded. ap/nano-7.1-x86_64-1.txz: Upgraded. d/git-2.39.0-x86_64-1.txz: Upgraded. d/rust-1.65.0-x86_64-1.txz: Upgraded. d/strace-6.1-x86_64-1.txz: Upgraded. kde/krita-5.1.4-x86_64-1.txz: Upgraded. l/imagemagick-7.1.0_54-x86_64-1.txz: Upgraded. l/nodejs-19.3.0-x86_64-1.txz: Upgraded. l/pcre2-10.42-x86_64-1.txz: Upgraded. n/iproute2-6.1.0-x86_64-1.txz: Upgraded. x/makedepend-1.0.8-x86_64-1.txz: Upgraded. x/xhost-1.0.9-x86_64-1.txz: Upgraded. x/xorg-server-21.1.5-x86_64-1.txz: Upgraded. This release fixes 6 recently reported security vulnerabilities in various extensions. For more information, see: https://lists.x.org/archives/xorg-announce/2022-December/003302.html https://www.cve.org/CVERecord?id=CVE-2022-46340 https://www.cve.org/CVERecord?id=CVE-2022-46341 https://www.cve.org/CVERecord?id=CVE-2022-46342 https://www.cve.org/CVERecord?id=CVE-2022-46343 https://www.cve.org/CVERecord?id=CVE-2022-46344 https://www.cve.org/CVERecord?id=CVE-2022-4283 (* Security fix *) x/xorg-server-xephyr-21.1.5-x86_64-1.txz: Upgraded. x/xorg-server-xnest-21.1.5-x86_64-1.txz: Upgraded. x/xorg-server-xvfb-21.1.5-x86_64-1.txz: Upgraded. x/xorg-server-xwayland-22.1.6-x86_64-1.txz: Upgraded. This release fixes 6 recently reported security vulnerabilities in various extensions. For more information, see: https://lists.x.org/archives/xorg-announce/2022-December/003302.html https://www.cve.org/CVERecord?id=CVE-2022-46340 https://www.cve.org/CVERecord?id=CVE-2022-46341 https://www.cve.org/CVERecord?id=CVE-2022-46342 https://www.cve.org/CVERecord?id=CVE-2022-46343 https://www.cve.org/CVERecord?id=CVE-2022-46344 https://www.cve.org/CVERecord?id=CVE-2022-4283 (* Security fix *) xap/mozilla-thunderbird-102.6.0-x86_64-1.txz: Upgraded. This release contains security fixes and improvements. For more information, see: https://www.mozilla.org/en-US/security/advisories/mfsa2022-53/ https://www.cve.org/CVERecord?id=CVE-2022-46880 https://www.cve.org/CVERecord?id=CVE-2022-46872 https://www.cve.org/CVERecord?id=CVE-2022-46881 https://www.cve.org/CVERecord?id=CVE-2022-46874 https://www.cve.org/CVERecord?id=CVE-2022-46875 https://www.cve.org/CVERecord?id=CVE-2022-46882 https://www.cve.org/CVERecord?id=CVE-2022-46878 (* Security fix *) xap/xscreensaver-6.06-x86_64-1.txz: Upgraded. testing/packages/mozilla-firefox-108.0-x86_64-1.txz: Upgraded. Starting this out in /testing for now, since I've been trying for 2 days to get it to compile on 32-bit with no luck. It ends up failing with a bunch of errors like this: ld.lld: error: undefined hidden symbol: tabs_4d51_TabsStore_sync Any help getting this to build on 32-bit would be greatly appreciated. I've tried most of ponce's bag of tricks already. :-)
Diffstat (limited to 'testing')
-rw-r--r--testing/source/mozilla-firefox/0027-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch34
-rw-r--r--testing/source/mozilla-firefox/arc4random_buf.glibc-2.36.diff18
-rwxr-xr-xtesting/source/mozilla-firefox/build-deps.sh35
-rw-r--r--testing/source/mozilla-firefox/build-deps/autoconf/autoconf-2.13-consolidated_fixes-1.patch504
-rwxr-xr-xtesting/source/mozilla-firefox/build-deps/autoconf/autoconf.build75
-rwxr-xr-xtesting/source/mozilla-firefox/fetch-and-repack.sh27
-rw-r--r--testing/source/mozilla-firefox/ff.ui.scrollToClick.diff12
-rw-r--r--testing/source/mozilla-firefox/firefox.moz_plugin_path.diff17
-rw-r--r--testing/source/mozilla-firefox/gkrust.a.no.networking.check.diff31
-rw-r--r--testing/source/mozilla-firefox/mimeTypes.rdf28
-rw-r--r--testing/source/mozilla-firefox/mozilla-firefox-mimeTypes-fix.diff45
-rwxr-xr-xtesting/source/mozilla-firefox/mozilla-firefox.SlackBuild435
-rw-r--r--testing/source/mozilla-firefox/mozilla-firefox.desktop80
-rw-r--r--testing/source/mozilla-firefox/slack-desc19
-rw-r--r--testing/source/rust/link_libffi.diff11
-rwxr-xr-xtesting/source/rust/rust.SlackBuild295
-rw-r--r--testing/source/rust/rust.url35
-rw-r--r--testing/source/rust/slack-desc19
18 files changed, 1360 insertions, 360 deletions
diff --git a/testing/source/mozilla-firefox/0027-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch b/testing/source/mozilla-firefox/0027-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch
new file mode 100644
index 000000000..387a65ad1
--- /dev/null
+++ b/testing/source/mozilla-firefox/0027-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch
@@ -0,0 +1,34 @@
+From 8ae6defd8340a13d88977d9973abd79495a99fcd Mon Sep 17 00:00:00 2001
+From: Thomas Deutschmann <whissi@gentoo.org>
+Date: Sat, 29 Aug 2020 22:30:59 +0200
+Subject: [PATCH 27/30] LTO: Only enable LTO for Rust when complete build uses
+ LTO
+
+Signed-off-by: Thomas Deutschmann <whissi@gentoo.org>
+---
+ config/makefiles/rust.mk | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/config/makefiles/rust.mk b/config/makefiles/rust.mk
+index 92f3070a85..0d72914c43 100644
+--- a/config/makefiles/rust.mk
++++ b/config/makefiles/rust.mk
+@@ -64,6 +64,7 @@ endif
+ # These flags are passed via `cargo rustc` and only apply to the final rustc
+ # invocation (i.e., only the top-level crate, not its dependencies).
+ cargo_rustc_flags = $(CARGO_RUSTCFLAGS)
++ifdef MOZ_LTO
+ ifndef DEVELOPER_OPTIONS
+ ifndef MOZ_DEBUG_RUST
+ # Enable link-time optimization for release builds, but not when linking
+@@ -77,6 +78,7 @@ RUSTFLAGS += -Cembed-bitcode=yes
+ endif
+ endif
+ endif
++endif
+
+ ifdef CARGO_INCREMENTAL
+ export CARGO_INCREMENTAL
+--
+2.31.0
+
diff --git a/testing/source/mozilla-firefox/arc4random_buf.glibc-2.36.diff b/testing/source/mozilla-firefox/arc4random_buf.glibc-2.36.diff
new file mode 100644
index 000000000..d4131c0a2
--- /dev/null
+++ b/testing/source/mozilla-firefox/arc4random_buf.glibc-2.36.diff
@@ -0,0 +1,18 @@
+--- ./ipc/chromium/src/third_party/libevent/arc4random.c.orig 2022-08-04 14:57:57.000000000 -0500
++++ ./ipc/chromium/src/third_party/libevent/arc4random.c 2022-08-06 14:40:21.569033657 -0500
+@@ -484,6 +484,7 @@
+ }
+ #endif
+
++#if 0
+ ARC4RANDOM_EXPORT void
+ arc4random_buf(void *buf_, size_t n)
+ {
+@@ -497,6 +498,7 @@
+ }
+ ARC4_UNLOCK_();
+ }
++#endif
+
+ #ifndef ARC4RANDOM_NOUNIFORM
+ /*
diff --git a/testing/source/mozilla-firefox/build-deps.sh b/testing/source/mozilla-firefox/build-deps.sh
new file mode 100755
index 000000000..8c22c29ba
--- /dev/null
+++ b/testing/source/mozilla-firefox/build-deps.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+# Copyright 2019 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Clear out any existing build deps:
+rm -rf $TMP/mozilla-firefox-build-deps
+mkdir -p $TMP/mozilla-firefox-build-deps
+# This will be at the beginning of the $PATH, so protect against nonsense
+# happening in /tmp:
+chmod 700 $TMP/mozilla-firefox-build-deps
+
+if /bin/ls build-deps*.txz 1> /dev/null 2> /dev/null ; then # use prebuilt
+ ( cd $TMP/mozilla-firefox-build-deps ; tar xf $CWD/build-deps*.txz )
+else
+ # We need to use the incredibly ancient autoconf-2.13 for this :/
+ ( cd $CWD/build-deps/autoconf ; ./autoconf.build ) || exit 1
+fi
diff --git a/testing/source/mozilla-firefox/build-deps/autoconf/autoconf-2.13-consolidated_fixes-1.patch b/testing/source/mozilla-firefox/build-deps/autoconf/autoconf-2.13-consolidated_fixes-1.patch
new file mode 100644
index 000000000..5e7b23113
--- /dev/null
+++ b/testing/source/mozilla-firefox/build-deps/autoconf/autoconf-2.13-consolidated_fixes-1.patch
@@ -0,0 +1,504 @@
+Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
+Date: 2016-06-11
+Initial Package Version: 2.13
+Upstream Status: Version is historic and unmaintained.
+Origin: Found at fedora, plus fixes for LFS.
+Description: All of the patches currently used by fedora, except for
+the patch which ensures gawk is used in preference to mawk (we do not
+install mawk). For LFS: we put mktemp in /usr/bin not /bin, remove
+the install-info target because that will overwrite standards.info
+with an old version (fedora always use a DESTDIR), and change the
+man and info dirs to ${datadir}/ i.e. /usr/share (an empty /usr/info
+will otherwise be created).
+
+diff -Naur a/acgeneral.m4 b/acgeneral.m4
+--- a/acgeneral.m4 1999-01-05 13:27:37.000000000 +0000
++++ b/acgeneral.m4 2016-06-11 00:18:24.429043947 +0100
+@@ -1817,10 +1817,6 @@
+ [cat > conftest.$ac_ext <<EOF
+ [#]line __oline__ "configure"
+ #include "confdefs.h"
+-ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
+-extern "C" void exit(int);
+-#endif
+-])dnl
+ [$1]
+ EOF
+ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+@@ -1988,12 +1984,12 @@
+ AC_MSG_CHECKING(size of $1)
+ AC_CACHE_VAL(AC_CV_NAME,
+ [AC_TRY_RUN([#include <stdio.h>
+-main()
++int main()
+ {
+ FILE *f=fopen("conftestval", "w");
+- if (!f) exit(1);
++ if (!f) return(1);
+ fprintf(f, "%d\n", sizeof($1));
+- exit(0);
++ return(0);
+ }], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, ifelse([$2], , , AC_CV_NAME=$2))])dnl
+ AC_MSG_RESULT($AC_CV_NAME)
+ AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
+@@ -2160,20 +2156,38 @@
+ dnl AC_OUTPUT_MAKE_DEFS()
+ define(AC_OUTPUT_MAKE_DEFS,
+ [# Transform confdefs.h into DEFS.
+-dnl Using a here document instead of a string reduces the quoting nightmare.
+ # Protect against shell expansion while executing Makefile rules.
+ # Protect against Makefile macro expansion.
+-cat > conftest.defs <<\EOF
++#
++# If the first sed substitution is executed (which looks for macros that
++# take arguments), then we branch to the quote section. Otherwise,
++# look for a macro that doesn't take arguments.
++cat >confdef2opt.sed <<\_ACEOF
+ changequote(<<, >>)dnl
+-s%<<#define>> \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
+-s%[ `~<<#>>$^&*(){}\\|;'"<>?]%\\&%g
+-s%\[%\\&%g
+-s%\]%\\&%g
+-s%\$%$$%g
++t clear
++: clear
++s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g
++t quote
++s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g
++t quote
++d
++: quote
++s,[ `~#$^&*(){}\\|;'"<>?],\\&,g
++s,\[,\\&,g
++s,\],\\&,g
++s,\$,$$,g
++p
+ changequote([, ])dnl
+-EOF
+-DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
+-rm -f conftest.defs
++_ACEOF
++# We use echo to avoid assuming a particular line-breaking character.
++# The extra dot is to prevent the shell from consuming trailing
++# line-breaks from the sub-command output. A line-break within
++# single-quotes doesn't work because, if this script is created in a
++# platform that uses two characters for line-breaks (e.g., DOS), tr
++# would break.
++ac_LF_and_DOT=`echo; echo .`
++DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
++rm -f confdef2opt.sed
+ ])
+
+ dnl Do the variable substitutions to create the Makefiles or whatever.
+diff -Naur a/acspecific.m4 b/acspecific.m4
+--- a/acspecific.m4 1999-01-05 13:27:52.000000000 +0000
++++ b/acspecific.m4 2016-06-11 00:18:17.533078644 +0100
+@@ -152,8 +152,41 @@
+ CXXFLAGS=
+ fi
+ fi
++
++AC_PROG_CXX_EXIT_DECLARATION
+ ])
+
++
++# AC_PROG_CXX_EXIT_DECLARATION
++# -----------------------------
++# Find a valid prototype for exit and declare it in confdefs.h.
++AC_DEFUN(AC_PROG_CXX_EXIT_DECLARATION,
++[for ac_declaration in \
++ ''\
++ '#include <stdlib.h>' \
++ 'extern "C" void std::exit (int) throw (); using std::exit;' \
++ 'extern "C" void std::exit (int); using std::exit;' \
++ 'extern "C" void exit (int) throw ();' \
++ 'extern "C" void exit (int);' \
++ 'void exit (int);'
++do
++ AC_TRY_COMPILE([#include <stdlib.h>
++$ac_declaration],
++ [exit (42);],
++ [],
++ [continue])
++ AC_TRY_COMPILE([$ac_declaration],
++ [exit (42);],
++ [break])
++done
++if test -n "$ac_declaration"; then
++ echo '#ifdef __cplusplus' >>confdefs.h
++ echo $ac_declaration >>confdefs.h
++ echo '#endif' >>confdefs.h
++fi
++])# AC_PROG_CXX_EXIT_DECLARATION
++
++
+ dnl Determine a Fortran 77 compiler to use. If `F77' is not already set
+ dnl in the environment, check for `g77', `f77' and `f2c', in that order.
+ dnl Set the output variable `F77' to the name of the compiler found.
+@@ -1010,7 +1043,7 @@
+ ])
+
+ AC_DEFUN(AC_FUNC_MMAP,
+-[AC_CHECK_HEADERS(unistd.h)
++[AC_CHECK_HEADERS(stdlib.h unistd.h sys/stat.h sys/types.h)
+ AC_CHECK_FUNCS(getpagesize)
+ AC_CACHE_CHECK(for working mmap, ac_cv_func_mmap_fixed_mapped,
+ [AC_TRY_RUN([
+@@ -1039,11 +1072,24 @@
+ #include <fcntl.h>
+ #include <sys/mman.h>
+
++#if HAVE_SYS_TYPES_H
++# include <sys/types.h>
++#endif
++
++#if HAVE_STDLIB_H
++# include <stdlib.h>
++#endif
++
++#if HAVE_SYS_STAT_H
++# include <sys/stat.h>
++#endif
++
++#if HAVE_UNISTD_H
++# include <unistd.h>
++#endif
++
+ /* This mess was copied from the GNU getpagesize.h. */
+ #ifndef HAVE_GETPAGESIZE
+-# ifdef HAVE_UNISTD_H
+-# include <unistd.h>
+-# endif
+
+ /* Assume that all systems that can run configure have sys/param.h. */
+ # ifndef HAVE_SYS_PARAM_H
+@@ -1373,6 +1419,8 @@
+ r.ru_majflt = r.ru_minflt = 0;
+ switch (fork()) {
+ case 0: /* Child. */
++ /* Unless we actually _do_ something, the kernel sometimes doesn't chalk up any system time to this process. */
++ if(fork()) { i = 123; wait(NULL); } else { i = 234; exit(0); }
+ sleep(1); /* Give up the CPU. */
+ _exit(0);
+ case -1: _exit(0); /* What can we do? */
+diff -Naur a/autoconf.sh b/autoconf.sh
+--- a/autoconf.sh 1999-01-05 13:27:53.000000000 +0000
++++ b/autoconf.sh 2016-06-11 00:22:17.351872133 +0100
+@@ -45,20 +45,20 @@
+ esac
+
+ : ${TMPDIR=/tmp}
+-tmpout=${TMPDIR}/acout.$$
++tmpout=`/usr/bin/mktemp ${TMPDIR}/acout.XXXXXX`
+ localdir=
+ show_version=no
+
+ while test $# -gt 0 ; do
+ case "${1}" in
+ -h | --help | --h* )
+- echo "${usage}" 1>&2; exit 0 ;;
++ echo "${usage}" 1>&2; rm -f $tmpout ; exit 0 ;;
+ --localdir=* | --l*=* )
+ localdir="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
+ shift ;;
+ -l | --localdir | --l*)
+ shift
+- test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
++ test $# -eq 0 && { echo "${usage}" 1>&2; rm -f $tmpout; exit 1; }
+ localdir="${1}"
+ shift ;;
+ --macrodir=* | --m*=* )
+@@ -66,7 +66,7 @@
+ shift ;;
+ -m | --macrodir | --m* )
+ shift
+- test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
++ test $# -eq 0 && { echo "${usage}" 1>&2; rm -f $tmpout; exit 1; }
+ AC_MACRODIR="${1}"
+ shift ;;
+ --version | --v* )
+@@ -76,7 +76,7 @@
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+- echo "${usage}" 1>&2; exit 1 ;;
++ echo "${usage}" 1>&2; rm -f $tmpout; exit 1 ;;
+ * )
+ break ;;
+ esac
+@@ -86,23 +86,25 @@
+ version=`sed -n 's/define.AC_ACVERSION.[ ]*\([0-9.]*\).*/\1/p' \
+ $AC_MACRODIR/acgeneral.m4`
+ echo "Autoconf version $version"
++ rm -f $tmpout
+ exit 0
+ fi
+
+ case $# in
+ 0) infile=configure.in ;;
+ 1) infile="$1" ;;
+- *) echo "$usage" >&2; exit 1 ;;
++ *) echo "$usage" >&2; rm -f $tmpout; exit 1 ;;
+ esac
+
+ trap 'rm -f $tmpin $tmpout; exit 1' 1 2 15
+
+-tmpin=${TMPDIR}/acin.$$ # Always set this, to avoid bogus errors from some rm's.
++tmpin=`/usr/bin/mktemp ${TMPDIR}/acin.XXXXXX`
++# Always set this, to avoid bogus errors from some rm's.
+ if test z$infile = z-; then
+ infile=$tmpin
+- cat > $infile
+ elif test ! -r "$infile"; then
+ echo "autoconf: ${infile}: No such file or directory" >&2
++ rm -f $tmpin $tmpout
+ exit 1
+ fi
+
+@@ -111,6 +113,8 @@
+ else
+ use_localdir=
+ fi
++# Make sure we don't leave those around - they are annoying
++trap 'rm -f $tmpin $tmpout' 0
+
+ # Use the frozen version of Autoconf if available.
+ r= f=
+@@ -118,7 +122,7 @@
+ case `$M4 --help < /dev/null 2>&1` in
+ *reload-state*) test -r $AC_MACRODIR/autoconf.m4f && { r=--reload f=f; } ;;
+ *traditional*) ;;
+-*) echo Autoconf requires GNU m4 1.1 or later >&2; rm -f $tmpin; exit 1 ;;
++*) echo Autoconf requires GNU m4 1.1 or later >&2; rm -f $tmpin $tmpout; exit 1 ;;
+ esac
+
+ $M4 -I$AC_MACRODIR $use_localdir $r autoconf.m4$f $infile > $tmpout ||
+@@ -154,6 +158,6 @@
+ /__oline__/s/^\([0-9][0-9]*\):\(.*\)__oline__/\2\1/
+ ' >&4
+
+-rm -f $tmpout
++rm -f $tmpout $tmpin
+
+ exit $status
+diff -Naur a/autoconf.texi b/autoconf.texi
+--- a/autoconf.texi 1999-01-05 13:28:37.000000000 +0000
++++ b/autoconf.texi 2016-06-11 00:18:46.360933604 +0100
+@@ -1,7 +1,7 @@
+ \input texinfo @c -*-texinfo-*-
+ @c %**start of header
+-@setfilename autoconf.info
+-@settitle Autoconf
++@setfilename autoconf.info
++@settitle Autoconf
+ @c For double-sided printing, uncomment:
+ @c @setchapternewpage odd
+ @c %**end of header
+@@ -17,7 +17,8 @@
+ @ifinfo
+ @format
+ START-INFO-DIR-ENTRY
+-* Autoconf: (autoconf). Create source code configuration scripts.
++* Autoconf: (autoconf). Create source code configuration scripts.
++ This is a legacy version of autoconf.
+ END-INFO-DIR-ENTRY
+ @end format
+
+diff -Naur a/autoheader.sh b/autoheader.sh
+--- a/autoheader.sh 1999-01-05 13:28:39.000000000 +0000
++++ b/autoheader.sh 2016-06-11 00:22:17.351872133 +0100
+@@ -194,9 +194,9 @@
+ # Some fgrep's have limits on the number of lines that can be in the
+ # pattern on the command line, so use a temporary file containing the
+ # pattern.
+- (fgrep_tmp=${TMPDIR-/tmp}/autoh$$
++ (fgrep_tmp=`/usr/bin/mktemp ${TMPDIR-/tmp}/autoh$$.XXXXXX`
+ trap "rm -f $fgrep_tmp; exit 1" 1 2 15
+- cat > $fgrep_tmp <<EOF
++ cat >> $fgrep_tmp <<EOF
+ $syms
+ EOF
+ fgrep -f $fgrep_tmp
+diff -Naur a/autoupdate.sh b/autoupdate.sh
+--- a/autoupdate.sh 1999-01-05 13:28:42.000000000 +0000
++++ b/autoupdate.sh 2016-06-11 00:23:19.151561252 +0100
+@@ -26,7 +26,7 @@
+ Usage: autoupdate [-h] [--help] [-m dir] [--macrodir=dir]
+ [--version] [template-file]"
+
+-sedtmp=/tmp/acups.$$
++sedtmp=`/usr/bin/mktemp /tmp/acups.XXXXXX`
+ # For debugging.
+ #sedtmp=/tmp/acups
+ show_version=no
+@@ -35,13 +35,13 @@
+ while test $# -gt 0 ; do
+ case "${1}" in
+ -h | --help | --h* )
+- echo "${usage}" 1>&2; exit 0 ;;
++ echo "${usage}" 1>&2; rm -f $sedtmp; exit 0 ;;
+ --macrodir=* | --m*=* )
+ AC_MACRODIR="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
+ shift ;;
+ -m | --macrodir | --m* )
+ shift
+- test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
++ test $# -eq 0 && { echo "${usage}" 1>&2; rm -f $sedtmp; exit 1; }
+ AC_MACRODIR="${1}"
+ shift ;;
+ --version | --versio | --versi | --vers)
+@@ -51,7 +51,7 @@
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+- echo "${usage}" 1>&2; exit 1 ;;
++ echo "${usage}" 1>&2; rm -f $sedtmp; exit 1 ;;
+ * )
+ break ;;
+ esac
+@@ -61,6 +61,7 @@
+ version=`sed -n 's/define.AC_ACVERSION.[ ]*\([0-9.]*\).*/\1/p' \
+ $AC_MACRODIR/acgeneral.m4`
+ echo "Autoconf version $version"
++ rm -f $sedtmp
+ exit 0
+ fi
+
+@@ -68,6 +69,7 @@
+
+ tmpout=acupo.$$
+ trap 'rm -f $sedtmp $tmpout; exit 1' 1 2 15
++trap 'rm -f $sedtmp' 0
+ case $# in
+ 0) infile=configure.in; out="> $tmpout"
+ # Make sure $infile can be read, and $tmpout has the same permissions.
+diff -Naur a/configure b/configure
+--- a/configure 1999-01-05 13:28:57.000000000 +0000
++++ b/configure 2016-06-11 00:50:57.771231914 +0100
+@@ -43,8 +43,8 @@
+ libdir='${exec_prefix}/lib'
+ includedir='${prefix}/include'
+ oldincludedir='/usr/include'
+-infodir='${prefix}/info'
+-mandir='${prefix}/man'
++infodir='${datadir}/info'
++mandir='${datadir}/man'
+
+ # Initialize some other variables.
+ subdirs=
+diff -Naur a/Makefile.in b/Makefile.in
+--- a/Makefile.in 1999-01-05 13:27:16.000000000 +0000
++++ b/Makefile.in 2016-06-11 00:29:34.005678107 +0100
+@@ -49,7 +49,7 @@
+
+ # Directory in which to install library files.
+ datadir = @datadir@
+-acdatadir = $(datadir)/autoconf
++acdatadir = $(datadir)/autoconf-2.13
+
+ # Directory in which to install documentation info files.
+ infodir = @infodir@
+@@ -68,8 +68,8 @@
+ DISTFILES = AUTHORS COPYING ChangeLog ChangeLog.1 INSTALL \
+ Makefile.in NEWS README TODO $(M4FILES) \
+ acconfig.h acfunctions acheaders acidentifiers \
+- acmakevars acprograms autoconf.info* \
+- autoconf.sh autoconf.texi install.texi \
++ acmakevars acprograms autoconf.info* \
++ autoconf.sh autoconf.texi install.texi \
+ autoheader.sh autoscan.pl autoreconf.sh autoupdate.sh ifnames.sh \
+ config.guess config.sub configure configure.in \
+ install-sh mkinstalldirs texinfo.tex \
+@@ -106,11 +106,11 @@
+ autoconf.m4f: autoconf.m4 acgeneral.m4 acspecific.m4 acoldnames.m4
+ autoheader.m4f: autoheader.m4 acgeneral.m4 acspecific.m4 acoldnames.m4
+
+-info: autoconf.info @standards_info@ INSTALL
++info: autoconf.info @standards_info@ INSTALL
+
+ # Use --no-split to avoid creating filenames > 14 chars.
+-autoconf.info: autoconf.texi install.texi
+- $(MAKEINFO) -I$(srcdir) $(srcdir)/autoconf.texi --no-split --output=$@
++autoconf.info: autoconf.texi install.texi
++ $(MAKEINFO) -I$(srcdir) $(srcdir)/autoconf.texi --no-split --output=$@
+
+ INSTALL: install.texi
+ $(MAKEINFO) -I$(srcdir) $(srcdir)/install.texi --output=$@ \
+@@ -121,8 +121,8 @@
+
+ dvi: autoconf.dvi @standards_dvi@
+
+-autoconf.dvi: autoconf.texi
+- $(TEXI2DVI) $(srcdir)/autoconf.texi
++autoconf.dvi: autoconf.texi
++ $(TEXI2DVI) $(srcdir)/autoconf.texi
+
+ standards.dvi: standards.texi make-stds.texi
+ $(TEXI2DVI) $(srcdir)/standards.texi
+@@ -137,35 +137,35 @@
+ cd testsuite && ${MAKE} AUTOCONF=${bindir}/autoconf $@
+
+ installdirs:
+- $(SHELL) ${srcdir}/mkinstalldirs $(bindir) $(infodir) $(acdatadir)
++ $(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)/$(bindir) $(DESTDIR)/$(infodir) $(DESTDIR)/$(acdatadir)
+
+-install: all $(M4FILES) acconfig.h installdirs install-info
++install: all $(M4FILES) acconfig.h installdirs
+ for p in $(ASCRIPTS); do \
+- $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed '$(transform)'`; \
++ $(INSTALL_PROGRAM) $$p $(DESTDIR)/$(bindir)/`echo $$p|sed '$(transform)'`; \
+ done
+ for i in $(M4FROZEN); do \
+- $(INSTALL_DATA) $$i $(acdatadir)/$$i; \
++ $(INSTALL_DATA) $$i $(DESTDIR)/$(acdatadir)/$$i; \
+ done
+ for i in $(M4FILES) acconfig.h; do \
+- $(INSTALL_DATA) $(srcdir)/$$i $(acdatadir)/$$i; \
++ $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)/$(acdatadir)/$$i; \
+ done
+ -if test -f autoscan; then \
+- $(INSTALL_PROGRAM) autoscan $(bindir)/`echo autoscan|sed '$(transform)'`; \
++ $(INSTALL_PROGRAM) autoscan $(DESTDIR)/$(bindir)/`echo autoscan|sed '$(transform)'`; \
+ for i in acfunctions acheaders acidentifiers acprograms \
+ acmakevars; do \
+- $(INSTALL_DATA) $(srcdir)/$$i $(acdatadir)/$$i; \
++ $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)/$(acdatadir)/$$i; \
+ done; \
+ else :; fi
+
+ # Don't cd, to avoid breaking install-sh references.
+ install-info: info installdirs
+- if test -f autoconf.info; then \
++ if test -f autoconf.info; then \
+ for i in *.info*; do \
+- $(INSTALL_DATA) $$i $(infodir)/$$i; \
++ $(INSTALL_DATA) $$i $(DESTDIR)/$(infodir)/$$i; \
+ done; \
+ else \
+ for i in $(srcdir)/*.info*; do \
+- $(INSTALL_DATA) $$i $(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \
++ $(INSTALL_DATA) $$i $(DESTDIR)/$(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \
+ done; \
+ fi
+
+@@ -174,7 +174,7 @@
+ rm -f $(bindir)/`echo $$p|sed '$(transform)'`; \
+ done
+ rm -fr $(acdatadir)
+- cd $(infodir) && rm -f autoconf.info*
++ cd $(infodir) && rm -f autoconf.info*
+ if test -f standards.info || test -f $(srcdir)/standards.info; \
+ then cd $(infodir) && rm -f standards.info*; fi
+
+diff -Naur a/testsuite/autoconf.s/syntax.exp b/testsuite/autoconf.s/syntax.exp
+--- a/testsuite/autoconf.s/syntax.exp 1999-01-05 13:29:54.000000000 +0000
++++ b/testsuite/autoconf.s/syntax.exp 2016-06-11 00:18:51.996905247 +0100
+@@ -2,7 +2,7 @@
+
+ send_user "Checking for syntax errors in the specific tests...\n"
+ set script {s/^AC_DEFUN(\([^,]*\).*/\1/p}
+-set macros [exec sed -n $script $srcdir/../acspecific.m4]
++set macros [exec sed -n $script $srcdir/../acspecific.m4 | grep -v -e AC_FUNC_GETLOADAVG -e F77]
+
+ foreach mac $macros {
+ send_user "$mac\n"
diff --git a/testing/source/mozilla-firefox/build-deps/autoconf/autoconf.build b/testing/source/mozilla-firefox/build-deps/autoconf/autoconf.build
new file mode 100755
index 000000000..b9ae59749
--- /dev/null
+++ b/testing/source/mozilla-firefox/build-deps/autoconf/autoconf.build
@@ -0,0 +1,75 @@
+#!/bin/sh
+
+# Copyright 2005-2016 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=autoconf
+VERSION=2.13
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i586 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-autoconf
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf autoconf-$VERSION
+tar xvf $CWD/autoconf-$VERSION.tar.xz || exit 1
+cd autoconf-$VERSION
+
+zcat $CWD/autoconf-2.13-consolidated_fixes-1.patch.gz | patch -p1 --verbose || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Build a temporary copy of autoconf-2.13 only to be used to compile
+# Firefox, since it somewhat inexplicably requires this ancient version:
+
+mkdir -p $TMP/mozilla-firefox-build-deps/usr
+
+./configure \
+ --prefix=$TMP/mozilla-firefox-build-deps/usr \
+ --program-suffix=-2.13 \
+ --infodir=$TMP/mozilla-firefox-build-deps/usr/info \
+ --mandir=$TMP/mozilla-firefox-build-deps/usr/man \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || make || exit 1
+make install || exit 1
+
diff --git a/testing/source/mozilla-firefox/fetch-and-repack.sh b/testing/source/mozilla-firefox/fetch-and-repack.sh
new file mode 100755
index 000000000..f52f45de7
--- /dev/null
+++ b/testing/source/mozilla-firefox/fetch-and-repack.sh
@@ -0,0 +1,27 @@
+# This script uses the SOURCE file downloaded from:
+# archive.mozilla.org:/pub/firefox/releases/{VERSION}
+
+CWD=$(pwd)
+
+if [ ! -r SOURCE ]; then
+ echo "Error: no SOURCE file present."
+ echo " download one from archive.mozilla.org:/pub/firefox/releases/{VERSION} and run this script again."
+ exit 1
+fi
+
+REPO_URL=$(grep tar.bz2 SOURCE | rev | cut -f 1 -d ' ' | rev)
+REPO_TARBALL=$(basename ${REPO_URL})
+rm -f ${REPO_TARBALL}
+rm -f firefox-*.source.tar.lz
+lftpget ${REPO_URL} || exit 1
+TMPDIR=$(mktemp -d)
+cd ${TMPDIR}
+tar xf ${CWD}/${REPO_TARBALL}
+FF_VER=$(cat mozilla-release-*/browser/config/version.txt)
+mv mozilla-release-* firefox-${FF_VER}
+tar cf firefox-${FF_VER}.source.tar firefox-${FF_VER}
+plzip -9 -n 6 firefox-${FF_VER}.source.tar
+cd ${CWD}
+mv ${TMPDIR}/firefox-${FF_VER}.source.tar.lz .
+rm -f ${REPO_TARBALL}
+rm -rf ${TMPDIR}
diff --git a/testing/source/mozilla-firefox/ff.ui.scrollToClick.diff b/testing/source/mozilla-firefox/ff.ui.scrollToClick.diff
new file mode 100644
index 000000000..f5cca210f
--- /dev/null
+++ b/testing/source/mozilla-firefox/ff.ui.scrollToClick.diff
@@ -0,0 +1,12 @@
+--- ./modules/libpref/init/all.js.orig 2019-07-08 13:28:45.106153934 -0500
++++ ./modules/libpref/init/all.js 2019-07-08 13:41:02.035201116 -0500
+@@ -258,6 +258,9 @@
+ // If true, all popups won't hide automatically on blur
+ pref("ui.popup.disable_autohide", false);
+
++// Default to GTK+ v2 type scrolling:
++pref("ui.scrollToClick", 0);
++
+ #ifdef XP_MACOSX
+ pref("ui.touchbar.layout", "Back,Forward,Reload,OpenLocation,NewTab,Share");
+ #endif
diff --git a/testing/source/mozilla-firefox/firefox.moz_plugin_path.diff b/testing/source/mozilla-firefox/firefox.moz_plugin_path.diff
new file mode 100644
index 000000000..761f295a4
--- /dev/null
+++ b/testing/source/mozilla-firefox/firefox.moz_plugin_path.diff
@@ -0,0 +1,17 @@
+--- ./firefox.orig 2008-05-29 15:21:18.000000000 -0500
++++ ./firefox 2008-06-17 12:19:26.000000000 -0500
+@@ -54,6 +54,14 @@
+
+ moz_libdir=/usr/local/lib/firefox-3.0
+
++# Include /usr/lib/mozilla/plugins in the plugin path:
++if [ "$MOZ_PLUGIN_PATH" ] ; then
++ MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:${moz_libdir}/plugins:/usr/lib/mozilla/plugins
++else
++ MOZ_PLUGIN_PATH=${moz_libdir}/plugins:/usr/lib/mozilla/plugins
++fi
++export MOZ_PLUGIN_PATH
++
+ # Use run-mozilla.sh in the current dir if it exists
+ # If not, then start resolving symlinks until we find run-mozilla.sh
+ found=0
diff --git a/testing/source/mozilla-firefox/gkrust.a.no.networking.check.diff b/testing/source/mozilla-firefox/gkrust.a.no.networking.check.diff
new file mode 100644
index 000000000..115ba0e7a
--- /dev/null
+++ b/testing/source/mozilla-firefox/gkrust.a.no.networking.check.diff
@@ -0,0 +1,31 @@
+--- ./config/makefiles/rust.mk.orig 2021-03-15 12:42:08.219987929 -0500
++++ ./config/makefiles/rust.mk 2021-03-15 12:43:15.996984180 -0500
+@@ -332,17 +332,17 @@
+ # the chance of proxy bypasses originating from rust code.
+ # The check only works when rust code is built with -Clto but without MOZ_LTO_RUST_CROSS.
+ # Sanitizers and sancov also fail because compiler-rt hooks network functions.
+-ifndef MOZ_PROFILE_GENERATE
+-ifeq ($(OS_ARCH), Linux)
+-ifeq (,$(rustflags_sancov)$(MOZ_ASAN)$(MOZ_TSAN)$(MOZ_UBSAN))
+-ifndef MOZ_LTO_RUST_CROSS
+-ifneq (,$(filter -Clto,$(cargo_rustc_flags)))
+- $(call py_action,check_binary,--target --networking $@)
+-endif
+-endif
+-endif
+-endif
+-endif
++#ifndef MOZ_PROFILE_GENERATE
++#ifeq ($(OS_ARCH), Linux)
++#ifeq (,$(rustflags_sancov)$(MOZ_ASAN)$(MOZ_TSAN)$(MOZ_UBSAN))
++#ifndef MOZ_LTO_RUST_CROSS
++#ifneq (,$(filter -Clto,$(cargo_rustc_flags)))
++# $(call py_action,check_binary,--target --networking $@)
++#endif
++#endif
++#endif
++#endif
++#endif
+
+ force-cargo-library-check:
+ $(call CARGO_CHECK) --lib $(cargo_target_flag) $(rust_features_flag)
diff --git a/testing/source/mozilla-firefox/mimeTypes.rdf b/testing/source/mozilla-firefox/mimeTypes.rdf
new file mode 100644
index 000000000..f3bc7b406
--- /dev/null
+++ b/testing/source/mozilla-firefox/mimeTypes.rdf
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<RDF:RDF xmlns:NC="http://home.netscape.com/NC-rdf#"
+ xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <RDF:Seq RDF:about="urn:mimetypes:root">
+ </RDF:Seq>
+ <RDF:Description RDF:about="urn:mimetypes">
+ <NC:MIME-types RDF:resource="urn:mimetypes:root"/>
+ </RDF:Description>
+ <RDF:Description RDF:about="urn:scheme:mailto"
+ NC:value="mailto">
+ <NC:handlerProp RDF:resource="urn:scheme:handler:mailto"/>
+ </RDF:Description>
+ <RDF:Description RDF:about="urn:handler:web:http://compose.mail.yahoo.com/?To=%s"
+ NC:prettyName="Yahoo! Mail"
+ NC:uriTemplate="http://compose.mail.yahoo.com/?To=%s" />
+ <RDF:Description RDF:about="urn:handler:web:https://mail.google.com/mail/?extsrc=mailto&amp;url=%s"
+ NC:prettyName="GMail"
+ NC:uriTemplate="https://mail.google.com/mail/?extsrc=mailto&amp;url=%s" />
+ <RDF:Description RDF:about="urn:scheme:handler:mailto"
+ NC:alwaysAsk="true">
+ <NC:possibleApplication RDF:resource="urn:handler:web:http://compose.mail.yahoo.com/?To=%s"/>
+ <NC:possibleApplication RDF:resource="urn:handler:web:https://mail.google.com/mail/?extsrc=mailto&amp;url=%s"/>
+ <NC:possibleApplication RDF:resource="urn:handler:local:/usr/bin/thunderbird"/>
+ </RDF:Description>
+ <RDF:Description RDF:about="urn:handler:local:/usr/bin/thunderbird"
+ NC:prettyName="thunderbird"
+ NC:path="/usr/bin/thunderbird" />
+</RDF:RDF>
diff --git a/testing/source/mozilla-firefox/mozilla-firefox-mimeTypes-fix.diff b/testing/source/mozilla-firefox/mozilla-firefox-mimeTypes-fix.diff
new file mode 100644
index 000000000..222113044
--- /dev/null
+++ b/testing/source/mozilla-firefox/mozilla-firefox-mimeTypes-fix.diff
@@ -0,0 +1,45 @@
+diff -Nur mozilla-1.9.1.orig/browser/locales/generic/profile/mimeTypes.rdf mozilla-1.9.1/browser/locales/generic/profile/mimeTypes.rdf
+--- mozilla-1.9.1.orig/browser/locales/generic/profile/mimeTypes.rdf 2009-06-29 11:14:41.000000000 -0500
++++ mozilla-1.9.1/browser/locales/generic/profile/mimeTypes.rdf 2009-07-01 08:28:05.407353867 -0500
+@@ -1,13 +1,28 @@
+-<?xml version="1.0"?>
+-
+-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+- xmlns:NC="http://home.netscape.com/NC-rdf#"
+- xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+-
+- <Description about="urn:mimetypes">
+- <NC:MIME-types>
+- <Seq about="urn:mimetypes:root">
+- </Seq>
+- </NC:MIME-types>
+- </Description>
+-</RDF>
++<?xml version="1.0"?>
++<RDF:RDF xmlns:NC="http://home.netscape.com/NC-rdf#"
++ xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
++ <RDF:Seq RDF:about="urn:mimetypes:root">
++ </RDF:Seq>
++ <RDF:Description RDF:about="urn:mimetypes">
++ <NC:MIME-types RDF:resource="urn:mimetypes:root"/>
++ </RDF:Description>
++ <RDF:Description RDF:about="urn:scheme:mailto"
++ NC:value="mailto">
++ <NC:handlerProp RDF:resource="urn:scheme:handler:mailto"/>
++ </RDF:Description>
++ <RDF:Description RDF:about="urn:handler:web:http://compose.mail.yahoo.com/?To=%s"
++ NC:prettyName="Yahoo! Mail"
++ NC:uriTemplate="http://compose.mail.yahoo.com/?To=%s" />
++ <RDF:Description RDF:about="urn:handler:web:https://mail.google.com/mail/?extsrc=mailto&amp;url=%s"
++ NC:prettyName="GMail"
++ NC:uriTemplate="https://mail.google.com/mail/?extsrc=mailto&amp;url=%s" />
++ <RDF:Description RDF:about="urn:scheme:handler:mailto"
++ NC:alwaysAsk="true">
++ <NC:possibleApplication RDF:resource="urn:handler:web:http://compose.mail.yahoo.com/?To=%s"/>
++ <NC:possibleApplication RDF:resource="urn:handler:web:https://mail.google.com/mail/?extsrc=mailto&amp;url=%s"/>
++ <NC:possibleApplication RDF:resource="urn:handler:local:/usr/bin/thunderbird"/>
++ </RDF:Description>
++ <RDF:Description RDF:about="urn:handler:local:/usr/bin/thunderbird"
++ NC:prettyName="thunderbird"
++ NC:path="/usr/bin/thunderbird" />
++</RDF:RDF>
diff --git a/testing/source/mozilla-firefox/mozilla-firefox.SlackBuild b/testing/source/mozilla-firefox/mozilla-firefox.SlackBuild
new file mode 100755
index 000000000..9ce487e29
--- /dev/null
+++ b/testing/source/mozilla-firefox/mozilla-firefox.SlackBuild
@@ -0,0 +1,435 @@
+#!/bin/bash
+
+# Copyright 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021, 2022 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Thanks to the folks at the Mozilla Foundation for permission to
+# distribute this, and for all the great work! :-)
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PKGNAM=mozilla-firefox
+VERSION=$(basename $(ls firefox-*.tar.?z | cut -d - -f 2 | rev | cut -f 3- -d . | rev) .source)
+RELEASEVER=$(echo $VERSION | cut -f 1 -d r | cut -f 1 -d b | cut -f 1 -d e)
+BUILD=${BUILD:-1}
+
+# Specify this variable for a localized build.
+# For example, to build a version of Firefox with Italian support, run
+# the build script like this:
+#
+# MOZLOCALIZE=it ./mozilla-firefox.SlackBuild
+#
+MOZLOCALIZE=${MOZLOCALIZE:-}
+
+# Without LANG=C, building the Python environment may fail with:
+# "UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 36: ordinal not in range(128)"
+LANG=C
+
+# Add a shell script to start the firefox binary with MOZ_ALLOW_DOWNGRADE=1
+# to avoid backing up (and disabling) the user profile if a browser downgrade
+# is detected. We made it fine for years without this feature, and all the
+# feedback we've seen suggests that it is causing more problems than it
+# solves. For example, this feature causes a profile reset trying to switch
+# between a 32-bit and 64-bit browser on installations that share a common
+# /home directory. If you want to build with the stock default behavior, set
+# this to something other than "YES":
+MOZ_ALLOW_DOWNGRADE=${MOZ_ALLOW_DOWNGRADE:-YES}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i686 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
+# the name of the created package would be, and then exit. This information
+# could be useful to other scripts.
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ if [ -z $MOZLOCALIZE ]; then
+ echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
+ else
+ echo "$PKGNAM-$VERSION-$ARCH-${BUILD}_$MOZLOCALIZE.txz"
+ fi
+ exit 0
+fi
+
+# Firefox has been requiring more and more memory, especially while linking
+# libxul. If it fails to build natively on x86 32-bit, it can be useful to
+# attempt the build using an x86_64 kernel and a 32-bit userspace. Detect this
+# situation and set the ARCH to i686. Later in the script we'll add some
+# options to the .mozconfig so that the compile will do the right thing.
+if [ "$(uname -m)" = "x86_64" -a "$(file -L /usr/bin/gcc | grep 80386 | grep 32-bit)" != "" ]; then
+ COMPILE_X86_UNDER_X86_64=true
+ ARCH=i686
+fi
+
+# Choose a compiler (gcc/g++ or clang/clang++):
+export CC=${CC:-clang}
+export CXX=${CXX:-clang++}
+
+# Set linker to use:
+if [ "$CC" = "clang" -a "$(which lld 2> /dev/null)" = "/usr/bin/lld" ]; then
+ # Upstream default:
+ LINKER=lld
+else
+ LINKER=bfd
+fi
+
+# Keep memory usage as low as possible when linking:
+if [ ! "$LINKER" = "lld" ]; then
+ SLKLDFLAGS=" -Wl,--as-needed -Wl,--no-keep-memory -Wl,--stats -Wl,--reduce-memory-overheads"
+ export LDFLAGS="$SLKLDFLAGS"
+ export MOZ_LINK_FLAGS="$SLKLDFLAGS"
+fi
+
+# Put Rust objects on a diet to keep the linker from running into memory
+# issues (especially on 32-bit):
+export RUSTFLAGS="-Cdebuginfo=0"
+
+# Use PGO? Doubles the time and drive space requirements for the build,
+# but should provide a performance increase. How much depends on which
+# benchmarks you believe, but I've typically seen around 2.5%. I've also
+# seen some which say it can be negligably (a fraction of a percent) slower
+# with this enganged. The anecdotal reports usually say there's a noticable
+# improvement in overall responsiveness. Seems like a good bet if you have
+# the time and your system is able to handle it. Set the variable to
+# anything else prior to the build to compile Firefox in less time (but
+# without the possible benefits of Profile-Guided Optimization).
+#
+# NOTE: The 23.0 release fails to compile with a GLib assert error if PGO
+# is enabled, so it is being disabled by default. I can't say I ever noticed
+# a lot of difference with this anyway (other than a much, much longer compile
+# time. But pass PGO=yes to the SlackBuild if you want to try it.
+#if [ "$ARCH" = "x86_64" ]; then
+# PGO=${PGO:-yes}
+#else
+# # 32-bit systems have problems compiling with PGO, as the per-process
+# # memory requirements are too large. Possibly compiling with a 64-bit
+# # kernel could be a workaround for this, but for now we will default to
+# # using PGO only for x86_64.
+# PGO=${PGO:-no}
+#fi
+#
+# PGO is disabled by default:
+PGO=${PGO:-no}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-g0"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-g0"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-g0"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-g0 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "arm" ]; then
+ SLKCFLAGS="-g0 -march=armv4 -mtune=xscale"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "armel" ]; then
+ SLKCFLAGS="-g0 -march=armv4t"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-g0"
+ LIBDIRSUFFIX=""
+fi
+
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-mozilla-firefox
+
+# If there is a private Google API key available at compile time, use
+# it to enable support for Google Safe Browsing. For Slackware builds,
+# we use a private key issued for the Slackware project. If you are
+# rebuilding and need this support, or you are producing your own
+# distribution, you may obtain your own Google API key at no charge by
+# following these instructions:
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1377987#c0
+if [ -r /root/google-api-key ]; then
+ GOOGLE_API_KEY="--with-google-safebrowsing-api-keyfile=/root/google-api-key"
+fi
+
+# If not specified, figure out if this is a beta or a release
+MOZVERS=${MOZVERS:-release}
+if echo $VERSION | grep -q b ; then MOZVERS=beta ; fi
+
+NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
+
+rm -rf $PKG
+mkdir -p $TMP $PKG/usr/lib${LIBDIRSUFFIX}
+
+# Build or unpack build-time dependencies:
+. ./build-deps.sh
+
+cd $TMP
+rm -rf firefox-$RELEASEVER
+# Unpack this in a subdirectory to prevent changing permissions on /tmp:
+rm -rf firefox-unpack
+mkdir firefox-unpack
+cd firefox-unpack
+tar xvf $CWD/firefox-$VERSION.source.tar.?z || exit 1
+mv * ..
+cd ..
+rm -rf firefox-unpack
+cd firefox-$RELEASEVER || exit 1
+
+# Delete object directory if it was mistakenly included in the tarball:
+rm -rf obj-x86_64-pc-linux-gnu
+
+# Prevent failures building gkrust by suppressing useless warnings:
+sed -i.allow-warnings -e '/#!\[deny(warnings)\]/a #![allow(unused_imports)]' \
+ servo/components/style/lib.rs
+
+# Retain GTK+ v2 scrolling behavior:
+zcat $CWD/ff.ui.scrollToClick.diff.gz | patch -p1 --verbose || exit 1
+
+# Don't enable LTO for Rust unless the whole build uses it:
+zcat $CWD/0027-LTO-Only-enable-LTO-for-Rust-when-complete-build-use.patch.gz | patch -p1 --verbose || exit 1
+
+# Don't define a function that's included starting in glibc-2.36:
+zcat $CWD/arc4random_buf.glibc-2.36.diff.gz | patch -p1 --verbose || exit 1
+
+# Fetch localization, if requested
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1256955
+if [ ! -z $MOZLOCALIZE ]; then
+ LOC_URL="http://ftp.mozilla.org/pub/firefox/candidates/$RELEASEVER-candidates/build1/l10n_changesets.txt"
+ LOC_COMMIT=$(wget -q -O - $LOC_URL | grep ^$MOZLOCALIZE | cut -d\ -f2)
+ hg clone https://hg.mozilla.org/l10n-central/$MOZLOCALIZE -r $LOC_COMMIT
+fi
+
+# Patch mimeTypes.rdf
+# Uncomment this if you want to use the patch; otherwise, we overwrite the
+# mimeTypes.rdf inside the package directory later
+# zcat $CWD/mozilla-firefox-mimeTypes-fix.diff.gz | patch -p1 || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \+ -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \+
+
+# Our building options, in a configure-like display ;)
+OPTIONS="\
+ --enable-official-branding \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --with-system-zlib \
+ --with-system-nss \
+ --with-system-nspr \
+ --with-unsigned-addon-scopes=app,system \
+ --without-wasm-sandboxed-libraries \
+ --allow-addon-sideload \
+ --enable-alsa \
+ --enable-application=browser \
+ --enable-default-toolkit=cairo-gtk3-wayland \
+ --enable-linker=$LINKER \
+ --enable-optimize \
+ $GOOGLE_API_KEY \
+ --disable-strip \
+ --disable-install-strip \
+ --disable-tests \
+ --enable-cpp-rtti \
+ --enable-accessibility \
+ --disable-crashreporter \
+ --disable-debug-symbols \
+ --disable-debug \
+ --disable-elf-hack \
+ --disable-updater"
+# Complains about missing APNG support in Slackware's libpng:
+# --with-system-png \
+# This option breaks mozilla-12.0:
+# --enable-system-cairo \
+# NOTE: It probably reduces bugs to use the bundled library versions,
+# so in general we will not --enable-system-libraries.
+# But since system zlib has been used for a long time and isn't a moving
+# target, we'll leave that one as-is.
+if [ ! -z $MOZLOCALIZE ]; then
+ OPTIONS=$OPTIONS" \
+ --enable-ui-locale=$MOZLOCALIZE
+ --with-l10n-base=.."
+ # There are no dictionaries in localized builds
+ sed -i \
+ -e "/@BINPATH@\/dictionaries\/\*/d" \
+ -e "/@RESPATH@\/dictionaries\/\*/d" \
+ browser/installer/package-manifest.in || exit 1
+fi
+
+export MACH_USE_SYSTEM_PYTHON="1"
+export MOZILLA_OFFICIAL="1"
+export BUILD_OFFICIAL="1"
+export MOZ_PHOENIX="1"
+export MOZ_PACKAGE_JSSHELL="1"
+export CFLAGS="$SLKCFLAGS"
+export CXXFLAGS="$SLKCFLAGS -fno-delete-null-pointer-checks"
+export MOZ_MAKE_FLAGS="$NUMJOBS"
+export MOZBUILD_STATE_PATH="$TMP/firefox-$RELEASEVER/.mozbuild"
+
+# Clear some variables that could break the build
+unset DBUS_SESSION_BUS_ADDRESS ORBIT_SOCKETDIR SESSION_MANAGER \
+ XDG_SESSION_COOKIE XAUTHORITY MAKEFLAGS
+
+# Assemble our .mozconfig, we use this method for building, seems
+# needed for PGO.
+echo ". \$topsrcdir/browser/config/mozconfig" > .mozconfig
+
+# Mozilla devs enforce using an objdir for building
+# https://developer.mozilla.org/en/Configuring_Build_Options#Building_with_an_objdir
+mkdir obj
+echo "mk_add_options MOZ_OBJDIR=$(pwd)/obj" >> .mozconfig
+
+if [ "$MOZLOCALIZE" ]; then
+ echo "mk_add_options MOZ_CO_LOCALES=\"$MOZLOCALIZE\"" >> .mozconfig
+fi
+
+# Tell .mozconfig about the selected compiler:
+echo "export CC=\"${CC}\"" >> .mozconfig
+echo "export CXX=\"${CXX}\"" >> .mozconfig
+
+if [ "$COMPILE_X86_UNDER_X86_64" = "true" ]; then
+ # Compile for i686 under an x86_64 kernel:
+ echo "ac_add_options --host=i686-pc-linux-gnu" >> .mozconfig
+ echo "ac_add_options --target=i686-pc-linux-gnu" >> .mozconfig
+fi
+
+# Add the $OPTIONS above to .mozconfig:
+for option in $OPTIONS; do echo "ac_add_options $option" >> .mozconfig; done
+
+# https://developer.mozilla.org/en-US/docs/Building_with_Profile-Guided_Optimization
+# Thanks to ArchLinux and Gentoo for the additional hints.
+if [ "$PGO" = "yes" ]; then
+ # Do a PGO build, double time and disk space but worth it.
+ export MOZ_PGO=1
+ echo "mk_add_options PROFILE_GEN_SCRIPT='EXTRA_TEST_ARGS=10 \$(MAKE) -C \$(MOZ_OBJDIR) pgo-profile-run'" >> .mozconfig
+ export DISPLAY=:99
+ # Launch Xvfb to let the profile scripts run in a X session.
+ # Ugly note: if the build breaks you may want to do a "killall Xvfb".
+ Xvfb -nolisten tcp -extension GLX -screen 0 1280x1024x24 $DISPLAY &
+ dbus-launch --exit-with-session ./mach build || exit 1
+ kill $! || true
+else
+ # Do a normal build
+ ./mach build || exit 1
+fi
+
+./mach buildsymbols || exit 1
+DESTDIR=$PKG ./mach install || exit 1
+
+# Strip binaries:
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+## Clean up the build time dependencies:
+#rm -rf $TMP/mozilla-firefox-build-deps
+
+# We don't need these (just symlinks anyway):
+rm -rf $PKG/usr/lib${LIBDIRSUFFIX}/firefox-devel-$RELEASEVER
+
+# Nor these:
+rm -rf $PKG/usr/include
+
+( cd $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER
+ #mv defaults/profile/mimeTypes.rdf defaults/profile/mimeTypes.rdf.orig || exit 1
+ if [ -d defaults/profile ]; then
+ zcat $CWD/mimeTypes.rdf > defaults/profile/mimeTypes.rdf || exit 1
+ fi
+ # OK, this patch is useless on 7.x. We'll float without it and see what happens.
+ # Perhaps it won't make a difference or should be worked around elsewhere.
+ #zcat $CWD/firefox.moz_plugin_path.diff.gz \
+ # | sed -e "s#usr/lib#usr/lib${LIBDIRSUFFIX}#g" \
+ # | patch -p1 --verbose --backup --suffix=.orig || exit 1
+ # Clean up if the above patch was successful:
+ #rm -f firefox.orig
+) || exit
+
+mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins
+mkdir -p $PKG/usr/share/applications
+cat $CWD/mozilla-firefox.desktop > $PKG/usr/share/applications/mozilla-firefox.desktop
+
+# These files/directories are usually created if Firefox is run as root,
+# which on many systems might (and possibly should) be never. Therefore, if we
+# don't see them we'll put stubs in place to prevent startup errors.
+( cd $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER
+ if [ -d extensions/talkback\@mozilla.org ]; then
+ if [ ! -r extensions/talkback\@mozilla.org/chrome.manifest ]; then
+ echo > extensions/talkback\@mozilla.org/chrome.manifest
+ fi
+ fi
+ if [ ! -d updates ]; then
+ mkdir -p updates/0
+ fi
+)
+
+# Need some default icons in the right place:
+for i in 16 22 24 32 48 256; do
+ install -m 0644 -D browser/branding/official/default${i}.png \
+ $PKG/usr/share/icons/hicolor/${i}x${i}/apps/firefox.png
+done
+mkdir -p $PKG/usr/share/pixmaps
+( cd $PKG/usr/share/pixmaps ; ln -sf /usr/share/icons/hicolor/256x256/apps/firefox.png . )
+mkdir -p $PKG/usr/lib$LIBDIRSUFFIX/firefox-$RELEASEVER/chrome/icons/default
+install -m 644 browser/branding/official/default16.png \
+ $PKG/usr/lib$LIBDIRSUFFIX/firefox-$RELEASEVER/icons/
+install -m 644 browser/branding/official/default16.png \
+ $PKG/usr/lib$LIBDIRSUFFIX/firefox-$RELEASEVER/chrome/icons/default/
+
+# Copy over the LICENSE
+install -p -c -m 644 LICENSE $PKG/usr/lib${LIBDIRSUFFIX}/firefox-$RELEASEVER/
+
+# If MOZ_ALLOW_DOWNGRADE=YES, replace the /usr/bin/firefox symlink with a
+# shell script that sets the MOZ_ALLOW_DOWNGRADE=1 environment variable so
+# that a detected browser downgrade does not reset the user profile:
+if [ "$MOZ_ALLOW_DOWNGRADE" = "YES" ]; then
+ rm -f $PKG/usr/bin/firefox
+ cat << EOF > $PKG/usr/bin/firefox
+#!/bin/sh
+#
+# Shell script to start Mozilla Firefox.
+#
+# Don't reset the user profile on a detected browser downgrade:
+export MOZ_ALLOW_DOWNGRADE=1
+
+# Start Firefox:
+exec /usr/lib${LIBDIRSUFFIX}/firefox/firefox "\$@"
+EOF
+ chown root:root $PKG/usr/bin/firefox
+ chmod 755 $PKG/usr/bin/firefox
+fi
+
+# Fix duplicate binary, https://bugzilla.mozilla.org/show_bug.cgi?id=658850
+( cd $PKG/usr/lib$LIBDIRSUFFIX/firefox
+ if cmp firefox firefox-bin ; then
+ ln -sf firefox-bin firefox
+ fi
+)
+
+mkdir $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+if [ -z $MOZLOCALIZE ]; then
+ /sbin/makepkg -l y -c n $TMP/mozilla-firefox-$VERSION-$ARCH-$BUILD.txz
+else
+ /sbin/makepkg -l y -c n $TMP/mozilla-firefox-$VERSION-$ARCH-${BUILD}_$MOZLOCALIZE.txz
+fi
diff --git a/testing/source/mozilla-firefox/mozilla-firefox.desktop b/testing/source/mozilla-firefox/mozilla-firefox.desktop
new file mode 100644
index 000000000..9c7478b05
--- /dev/null
+++ b/testing/source/mozilla-firefox/mozilla-firefox.desktop
@@ -0,0 +1,80 @@
+[Desktop Entry]
+Exec=firefox %u
+Icon=firefox
+Type=Application
+Categories=Network;WebBrowser;
+Name=Firefox
+Name[bn]=ফায়ারফক্স
+Name[eo]=Mozilo Fajrovulpo
+Name[fi]=Mozilla Firefox
+Name[pa]=ਫਾਇਰਫੋਕਸ
+Name[tg]=Рӯбоҳи оташин
+GenericName=Web Browser
+GenericName[af]=Web Blaaier
+GenericName[ar]=متصفح ويب
+GenericName[az]=Veb Səyyahı
+GenericName[bg]=Браузър
+GenericName[bn]=ওয়েব ব্রাউজার
+GenericName[br]=Furcher ar Gwiad
+GenericName[bs]=WWW Preglednik
+GenericName[ca]=Fullejador web
+GenericName[cs]=WWW prohlížeč
+GenericName[cy]=Porydd Gwe
+GenericName[da]=Browser
+GenericName[de]=Web-Browser
+GenericName[el]=Περιηγητής Ιστού
+GenericName[eo]=TTT-legilo
+GenericName[es]=Navegador web
+GenericName[et]=Veebilehitseja
+GenericName[eu]=Web arakatzailea
+GenericName[fa]=مرورگر وب
+GenericName[fi]=WWW-selain
+GenericName[fo]=Alnótsfar
+GenericName[fr]=Navigateur web
+GenericName[gl]=Navegador Web
+GenericName[he]=דפדפן אינטרנט
+GenericName[hi]=वेब ब्राउज़र
+GenericName[hr]=Web preglednik
+GenericName[hu]=Webböngésző
+GenericName[is]=Vafri
+GenericName[it]=Browser Web
+GenericName[ja]=ウェブブラウザ
+GenericName[ko]=웹 브라우저
+GenericName[lo]=ເວັບບຣາວເຊີ
+GenericName[lt]=Žiniatinklio naršyklė
+GenericName[lv]=Web Pārlūks
+GenericName[mk]=Прелистувач на Интернет
+GenericName[mn]=Веб-Хөтөч
+GenericName[nb]=Nettleser
+GenericName[nds]=Nettkieker
+GenericName[nl]=Webbrowser
+GenericName[nn]=Nettlesar
+GenericName[nso]=Seinyakisi sa Web
+GenericName[pa]=ਵੈਬ ਝਲਕਾਰਾ
+GenericName[pl]=Przeglądarka WWW
+GenericName[pt]=Navegador Web
+GenericName[pt_BR]=Navegador Web
+GenericName[ro]=Navigator de web
+GenericName[ru]=Веб-браузер
+GenericName[se]=Fierpmádatlogan
+GenericName[sk]=Webový prehliadač
+GenericName[sl]=Spletni brskalnik
+GenericName[sr]=Веб претраживач
+GenericName[sr@Latn]=Veb pretraživač
+GenericName[ss]=Ibrawuza yeWeb
+GenericName[sv]=Webbläsare
+GenericName[ta]=வலை உலாவி
+GenericName[tg]=Тафсиргари вэб
+GenericName[th]=เว็บบราวเซอร์
+GenericName[tr]=Web Tarayıcı
+GenericName[uk]=Навігатор Тенет
+GenericName[uz]=Веб-браузер
+GenericName[ven]=Buronza ya Webu
+GenericName[vi]=Trình duyệt Web
+GenericName[wa]=Betchteu waibe
+GenericName[xh]=Umkhangeli zincwadi we Web
+GenericName[zh_CN]=网页浏览器
+GenericName[zh_TW]=網頁瀏覽器
+GenericName[zu]=Umcingi we-Web
+MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
+X-KDE-StartupNotify=true
diff --git a/testing/source/mozilla-firefox/slack-desc b/testing/source/mozilla-firefox/slack-desc
new file mode 100644
index 000000000..65f58ab69
--- /dev/null
+++ b/testing/source/mozilla-firefox/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+mozilla-firefox: mozilla-firefox (Mozilla Firefox Web browser)
+mozilla-firefox:
+mozilla-firefox: Firefox is a free and open-source web browser developed by the Mozilla
+mozilla-firefox: Foundation and its subsidiary, the Mozilla Corporation. It has lots of
+mozilla-firefox: great features including popup blocking, tabbed browsing, integrated
+mozilla-firefox: search, improved privacy features (such as enhanced tracking
+mozilla-firefox: protection), and more.
+mozilla-firefox:
+mozilla-firefox: Homepage: https://www.mozilla.org/firefox
+mozilla-firefox:
+mozilla-firefox:
diff --git a/testing/source/rust/link_libffi.diff b/testing/source/rust/link_libffi.diff
deleted file mode 100644
index dd5a3e0f0..000000000
--- a/testing/source/rust/link_libffi.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./compiler/rustc_llvm/build.rs.orig 2020-11-16 08:01:53.000000000 -0600
-+++ ./compiler/rustc_llvm/build.rs 2020-11-19 13:46:21.222785372 -0600
-@@ -234,6 +234,8 @@
- println!("cargo:rustc-link-lib={}={}", kind, name);
- }
-
-+ println!("cargo:rustc-link-lib=dylib=ffi");
-+
- // LLVM ldflags
- //
- // If we're a cross-compile of LLVM then unfortunately we can't trust these
diff --git a/testing/source/rust/rust.SlackBuild b/testing/source/rust/rust.SlackBuild
deleted file mode 100755
index 6cb49f88d..000000000
--- a/testing/source/rust/rust.SlackBuild
+++ /dev/null
@@ -1,295 +0,0 @@
-#!/bin/bash
-
-# Copyright 2017 Andrew Clemons, Wellington, New Zealand
-# Copyright 2017, 2018, 2019, 2020, 2021, 2022 Patrick J. Volkerding, Sebeka, Minnesota, USA
-# Copyright 2017 Stuart Winter
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-cd $(dirname $0) ; CWD=$(pwd)
-
-PKGNAM=rust
-SRCNAM="${PKGNAM}c"
-VERSION=${VERSION:-1.65.0}
-BUILD=${BUILD:-1}
-
-# Set this to YES to build with the system LLVM, or NO to use the bundled LLVM.
-# YES is probably better (when it works...)
-SYSTEM_LLVM=${SYSTEM_LLVM:-YES}
-
-# Bootstrap variables (might not be kept updated for latest Rust):
-RSTAGE0_VERSION=${RSTAGE0_VERSION:-1.64.0}
-RSTAGE0_DIR=${RSTAGE0_DIR:-2022-09-22}
-CSTAGE0_VERSION=${CSTAGE0_VERSION:-1.64.0}
-CSTAGE0_DIR=${CSTAGE0_DIR:-$RSTAGE0_DIR}
-
-# Automatically determine the architecture we're building on:
-MARCH=$( uname -m )
-if [ -z "$ARCH" ]; then
- case "$MARCH" in
- i?86) export ARCH=i686 ;;
- armv7hl) export ARCH=$MARCH ;;
- arm*) export ARCH=arm ;;
- # Unless $ARCH is already set, use uname -m for all other archs:
- *) export ARCH=$MARCH ;;
- esac
-fi
-unset MARCH
-
-# For compiling i686 under an x86_64 kernel:
-if [ "$(uname -m)" = "x86_64" -a "$(file -L /usr/bin/gcc | grep 80386 | grep 32-bit)" != "" ]; then
- ARCH=i686
-fi
-
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
-if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
- echo "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
- exit 0
-fi
-
-# If the bootstrap binaries are present, use those. Otherwise bootstrap from
-# installed compiler.
-if /bin/ls *-unknown-linux-gnu.tar.?z 1> /dev/null 2> /dev/null ; then
- LOCAL_BOOTSTRAP=no
-else
- LOCAL_BOOTSTRAP=yes
-fi
-
-# https://forge.rust-lang.org/platform-support.html
-# Bootstrapping ARCH:
-if [ "$ARCH" = "i586" ]; then
- if [ "$LOCAL_BOOTSTRAP" = "yes" ] ; then
- if rustc -Vv | grep host | grep i586 > /dev/null ; then
- BARCH="$ARCH"
- else
- BARCH="i686"
- if case "$( uname -m )" in i586) true ;; *) false ;; esac ; then
- echo "rust must be bootstrapped from an i686 machine"
- exit 1
- fi
- fi
- else
- # i586 must be built on a i686 machine, since the bootstrap compiler is i686
- BARCH="i686"
- if case "$( uname -m )" in i586) true ;; *) false ;; esac ; then
- echo "rust must be bootstrapped from an i686 machine"
- exit 1
- fi
- fi
- TARCH="$ARCH"
-elif [ "$ARCH" = "armv7hl" ]; then
- BARCH="armv7"
- TARCH="$BARCH"
-else
- BARCH="$ARCH"
- TARCH="$ARCH"
-fi
-
-# Bootstrapping ABI:
-if [ "$ARCH" = "armv7hl" ]; then
- BABI="gnueabihf"
-else
- BABI="gnu"
-fi
-
-TMP=${TMP:-/tmp}
-OUTPUT=${OUTPUT:-$TMP}
-PKG=$TMP/package-$PKGNAM
-
-# Not needed, as the build will automatically use as many jobs as there are
-# threads.
-#NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
-
-if [ "$ARCH" = "i586" ]; then
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "i686" ]; then
- LIBDIRSUFFIX=""
-elif [ "$ARCH" = "x86_64" ]; then
- LIBDIRSUFFIX="64"
-elif [ "$ARCH" = "armv7hl" ]; then
- LIBDIRSUFFIX=""
-else
- LIBDIRSUFFIX=""
-fi
-
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $SRCNAM-$VERSION-src
-tar xvf $CWD/$SRCNAM-$VERSION-src.tar.?z || exit 1
-cd $SRCNAM-$VERSION-src || exit 1
-
-# Link with -lffi in case of using system LLVM:
-if [ "${SYSTEM_LLVM}" = "YES" ]; then
- zcat $CWD/link_libffi.diff.gz | patch -p1 --verbose || exit 1
-fi
-
-if [ "$LOCAL_BOOTSTRAP" != "yes" ] ; then
- # rust requires bootstrapping with the previous rust version.
- # versions are defined in src/stage0.txt.
- mkdir -p build/cache/$RSTAGE0_DIR
- cp $CWD/$PKGNAM-std-$RSTAGE0_VERSION-$BARCH-unknown-linux-gnu.tar.?z \
- $CWD/$SRCNAM-$RSTAGE0_VERSION-$BARCH-unknown-linux-gnu.tar.?z \
- build/cache/$RSTAGE0_DIR
- mkdir -p build/cache/$CSTAGE0_DIR
- cp $CWD/cargo-$CSTAGE0_VERSION-$BARCH-unknown-linux-gnu.tar.?z build/cache/$CSTAGE0_DIR
-fi
-
-# Build configuration:
-cat << EOF > config.toml
-[llvm]
-ccache = "/usr/bin/ccache"
-link-shared = true
-
-[build]
-build = "$BARCH-unknown-linux-$BABI"
-host = ["$TARCH-unknown-linux-$BABI"]
-target = ["$TARCH-unknown-linux-$BABI"]
-tools = ["analysis", "cargo", "clippy", "rls", "rustfmt", "src"]
-submodules = false
-vendor = true
-extended = true
-
-[install]
-prefix = "/usr"
-docdir = "doc/rust-$VERSION"
-libdir = "lib$LIBDIRSUFFIX"
-mandir = "man"
-
-[rust]
-codegen-units = 0
-channel = "stable"
-rpath = false
-codegen-tests = false
-ignore-git = true
-
-EOF
-
-if [ "${SYSTEM_LLVM}" = "YES" ]; then
- cat << EOF >> config.toml
-# Add this stuff to build with the system LLVM:
-[target.i586-unknown-linux-gnu]
-llvm-config = "/usr/bin/llvm-config"
-
-[target.i686-unknown-linux-gnu]
-llvm-config = "/usr/bin/llvm-config"
-
-[target.x86_64-unknown-linux-gnu]
-llvm-config = "/usr/bin/llvm-config"
-
-[target.armv7-unknown-linux-gnueabihf]
-llvm-config = "/usr/bin/llvm-config"
-EOF
-fi
-
-if [ "$LOCAL_BOOTSTRAP" = "yes" ] ; then
- sed -i "s|^\(extended = true\)$|\1\nrustc = \"/usr/bin/rustc\"\ncargo = \"/usr/bin/cargo\"|" config.toml
-fi
-
-chown -R root:root .
-find -L . \
- \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \+ -o \
- \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+
-
-export PKG_CONFIG_ALLOW_CROSS=1
-
-if [ "$BARCH" = "i586" ] ; then
- # when bootstrapping from i586 (rust already installed), also build a i686
- # rustlib:
- sed -i 's/^target =.*$/target = ["i686-unknown-linux-gnu"]/' config.toml
-elif [ "$BARCH" = "i686" ] ; then
- if [ "$TARCH" = "i586" ] ; then
- # this will cause some messages like:
- # warning: redundant linker flag specified for library `m`
- # but will keep the build from falling over when doing the stage1 compiler
- # linking for the i586 compiler. seems the correct flags don't get passed
- # through and we end up failures like:
- # error: linking with `clang` failed: exit code: 1
- # /tmp/SBo/rustc-1.20.0-src/build/i686-unknown-linux-gnu/stage1-rustc/i586-unknown-linux-gnu/release/deps/librustc_llvm-4ab259c9aed547db.so: undefined reference to `xxx`
- export RUSTFLAGS="$RUSTFLAGS -C link-args=-lrt -ldl -lcurses -lpthread -lz -lm"
- fi
-fi
-
-# Build and install:
-python3 ./x.py build || exit 1
-DESTDIR=$PKG python3 x.py install || exit 1
-
-# Eh, none of this is all that big. Might as well leave it around as a
-# reference.
-#rm -f $PKG/usr/lib$LIBDIRSUFFIX/rustlib/components
-#rm -f $PKG/usr/lib$LIBDIRSUFFIX/rustlib/install.log
-#rm -f $PKG/usr/lib$LIBDIRSUFFIX/rustlib/manifest-*
-#rm -f $PKG/usr/lib$LIBDIRSUFFIX/rustlib/rust-installer-version
-#rm -f $PKG/usr/lib$LIBDIRSUFFIX/rustlib/uninstall.sh
-# Make sure the paths are correct, though:
-sed -i "s,/tmp/package-rust/,/,g" $PKG/usr/lib$LIBDIRSUFFIX/rustlib/install.log $PKG/usr/lib$LIBDIRSUFFIX/rustlib/manifest-*
-# And a little compression doesn't hurt either:
-gzip -9 $PKG/usr/lib$LIBDIRSUFFIX/rustlib/manifest-*
-
-# Move bash completions to the system location:
-if [ -d $PKG/etc/bash_completion.d ]; then
- mkdir -p $PKG/usr/share/bash-completion
- mv $PKG/etc/bash_completion.d $PKG/usr/share/bash-completion/completions
- rmdir $PKG/etc 2> /dev/null
-fi
-
-# Correct permissions on shared libraries:
-find $PKG/usr/lib$LIBDIRSUFFIX -name "*.so" -exec chmod 755 "{}" \+
-
-# Evidently there are a lot of duplicated libraries in this tree, so let's
-# try to save some space:
-( cd $PKG/usr/lib${LIBDIRSUFFIX}/rustlib/*-linux-gnu/lib && for file in *.so ; do if cmp -s $file ../../../$file ; then ln -sf ../../../$file .; fi; done )
-
-# Strip ELF objects:
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-
-# Get rid of a possible duplicated libLLVM. Not only is it large, but it also
-# throws an error at boot with ldconfig:
-rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libLLVM-*.so.old
-
-# Commented out (for now) since we disable rpaths in config.toml:
-## Remove any compiled-in RPATHs:
-#find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
-# | cut -f 1 -d : | while read elfobject ; do
-# patchelf --remove-rpath $elfobject || exit 1
-#done
-
-# Compress man pages:
-find $PKG/usr/man -type f -exec gzip -9 {} \+
-for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
-
-# Add some documentation:
-mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
-cp -a *.md COPYRIGHT* COPYING* LICENSE* $PKG/usr/doc/$PKGNAM-$VERSION
-# Include licenses from third party vendors:
-mkdir $PKG/usr/doc/$PKGNAM-$VERSION/vendor
-( cd vendor
- tar cf - $(find . -maxdepth 2 | grep -e README -e LICENSE -e COPYING -e CHANGELOG -e PERFORMANCE -e UPGRADE ) | ( cd $PKG/usr/doc/$PKGNAM-$VERSION/vendor ; tar xf - )
-)
-
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/testing/source/rust/rust.url b/testing/source/rust/rust.url
deleted file mode 100644
index b8cf863fd..000000000
--- a/testing/source/rust/rust.url
+++ /dev/null
@@ -1,35 +0,0 @@
-# Source code (repacked to .tar.lz):
-VERSION=1.65.0
-rm -f rustc-${VERSION}-src.tar.*
-lftpget https://static.rust-lang.org/dist/rustc-${VERSION}-src.tar.gz
-lftpget https://static.rust-lang.org/dist/rustc-${VERSION}-src.tar.gz.asc
-if gpg --verify rustc-${VERSION}-src.tar.gz.asc ; then
- rm -f rustc-${VERSION}-src.tar.gz.asc
- gzip -d rustc-*tar.gz
- plzip -9 -v rustc-*tar
-else
- echo "FATAL ERROR: Not recompressing since GPG signature failed."
- exit 1
-fi
-
-# Please note that the bootstrap binary packages listed below might not be kept
-# updated for later versions. The Rust compiler as shipped with Slackware
-# should be able to compile the next released version of Rust.
-#
-# To find the expected date/versions for bootstrap binaries to be able to
-# update the settings below, look at src/stage0.json in the Rust sources.
-exit 0
-
-BOOTSTRAP_DATE=2022-09-22
-BOOTSTRAP_VERSION=1.64.0
-BOOTSTRAP_CARGO=$BOOTSTRAP_VERSION
-
-# i686 bootstrap:
-lftpget https://static.rust-lang.org/dist/${BOOTSTRAP_DATE}/cargo-${BOOTSTRAP_CARGO}-i686-unknown-linux-gnu.tar.xz
-lftpget https://static.rust-lang.org/dist/${BOOTSTRAP_DATE}/rust-std-${BOOTSTRAP_VERSION}-i686-unknown-linux-gnu.tar.xz
-lftpget https://static.rust-lang.org/dist/${BOOTSTRAP_DATE}/rustc-${BOOTSTRAP_VERSION}-i686-unknown-linux-gnu.tar.xz
-
-# x86_64 bootstrap:
-lftpget https://static.rust-lang.org/dist/${BOOTSTRAP_DATE}/cargo-${BOOTSTRAP_CARGO}-x86_64-unknown-linux-gnu.tar.xz
-lftpget https://static.rust-lang.org/dist/${BOOTSTRAP_DATE}/rust-std-${BOOTSTRAP_VERSION}-x86_64-unknown-linux-gnu.tar.xz
-lftpget https://static.rust-lang.org/dist/${BOOTSTRAP_DATE}/rustc-${BOOTSTRAP_VERSION}-x86_64-unknown-linux-gnu.tar.xz
diff --git a/testing/source/rust/slack-desc b/testing/source/rust/slack-desc
deleted file mode 100644
index 924b1907e..000000000
--- a/testing/source/rust/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description.
-# Line up the first '|' above the ':' following the base package name, and
-# the '|' on the right side marks the last column you can put a character in.
-# You must make exactly 11 lines for the formatting to be correct. It's also
-# customary to leave one space after the ':' except on otherwise blank lines.
-
- |-----handy-ruler------------------------------------------------------|
-rust: rust (a safe, concurrent, practical language)
-rust:
-rust: Rust is a curly-brace, block-structured expression language.
-rust: Its design is oriented toward concerns of "programming in the large",
-rust: that is, of creating and maintaining boundaries - both abstract and
-rust: operational - that preserve large-system integrity, availability,
-rust: and concurrency.
-rust:
-rust: Homepage: https://rust-lang.org
-rust:
-rust: