diff options
Diffstat (limited to 'extra/firefox')
-rwxr-xr-x | extra/firefox/build | 42 | ||||
-rw-r--r-- | extra/firefox/checksums | 15 | ||||
-rw-r--r-- | extra/firefox/depends | 53 | ||||
-rw-r--r-- | extra/firefox/files/mozconfig | 59 | ||||
-rw-r--r-- | extra/firefox/files/policies.json | 21 | ||||
-rw-r--r-- | extra/firefox/files/stab.h | 71 | ||||
-rw-r--r-- | extra/firefox/files/vendor.js | 619 | ||||
-rw-r--r-- | extra/firefox/patches/firefox-71-no-accessibility.patch | 13 | ||||
-rw-r--r-- | extra/firefox/patches/firefox-71-no-dbus.patch | 425 | ||||
-rw-r--r-- | extra/firefox/patches/fix-fortify-system-wrappers.patch | 13 | ||||
-rw-r--r-- | extra/firefox/patches/fix-sandbox-membarrier.patch | 54 | ||||
-rw-r--r-- | extra/firefox/patches/fix-seccomp-bpf.patch | 14 | ||||
-rw-r--r-- | extra/firefox/patches/fix-toolkit.patch | 90 | ||||
-rw-r--r-- | extra/firefox/patches/fix-tools.patch | 37 | ||||
-rw-r--r-- | extra/firefox/patches/fix-webrtc-glibcisms.patch | 20 | ||||
-rw-r--r-- | extra/firefox/patches/mallinfo.patch | 34 | ||||
-rw-r--r-- | extra/firefox/sources | 15 | ||||
-rw-r--r-- | extra/firefox/version | 1 |
18 files changed, 1596 insertions, 0 deletions
diff --git a/extra/firefox/build b/extra/firefox/build new file mode 100755 index 00000000..fb862887 --- /dev/null +++ b/extra/firefox/build @@ -0,0 +1,42 @@ +#!/bin/sh -e + +# Build autoconf 2.13 for Firefox's sole use. +# See: https://bugzilla.mozilla.org/show_bug.cgi?id=104642 +( + cd autoconf2.13 + + ./configure \ + --prefix="$PWD/../autoconf" \ + --program-suffix=-2.13 + + make + make install +) + +export PATH=$PWD/autoconf/bin:$PATH +export LDFLAGS="$LDFLAGS -Wl,-rpath=/usr/lib/firefox" +export CC=${CC:-gcc} +export CXX=${CXX:-g++} + +for patch in *.patch; do + patch -p1 < "$patch" +done + +# Fix OOM errors. +cores=$(nproc) +printf '%s\n' "mk_add_options MOZ_MAKE_FLAGS=\"-j$cores -l$cores\"" >> mozconfig + +./mach build +DESTDIR="$1" ./mach install + +rm -rf "$1/usr/include" +rm -rf "$1/usr/lib/firefox-devel" +rm -rf "$1/usr/share/idl" +rm -rf "$1/usr/lib/firefox/gtk2" +rm -f "$1/usr/lib/firefox/browser/features/fxmonitor@mozilla.org.xpi" +rm -f "$1/usr/lib/firefox/browser/features/screenshots@mozilla.org.xpi" +rm -f "$1/usr/lib/firefox/browser/features/webcompat-reporter@mozilla.org.xpi" +rm -f "$1/usr/lib/firefox/browser/features/webcompat@mozilla.org.xpi" + +install -D vendor.js "$1/usr/lib/firefox/browser/defaults/preferences/vendor.js" +install -D policies.json "$1/usr/lib/firefox/distribution/policies.json" diff --git a/extra/firefox/checksums b/extra/firefox/checksums new file mode 100644 index 00000000..30128dc0 --- /dev/null +++ b/extra/firefox/checksums @@ -0,0 +1,15 @@ +e67c448f9e82a19c737a72f9af1ccd325ba9e86fcbb1cd6839e6eda37d0f5410 firefox-71.0.source.tar.xz +f0611136bee505811e9ca11ca7ac188ef5323a8e2ef19cffd3edb3cf08fd791e autoconf-2.13.tar.gz +b5e70b12cc9dd18fffd7924a7d3a2e11574136fe0764359d08eba0755f1c5d4c mozconfig +960d82bbfdc88c95f5cb4f2e1c1bf23dae7519b3b7203914d7b3ddbff1ba4c28 stab.h +cfc7d5006a3381e1b04f642b518317e19790ee31d23757274fdfeaba65c98b0c vendor.js +f4ce7ee2485256b3f8c2bc467445f14b4730a7b895b17de7a21711d78bcfedea policies.json +315880530f09175788dfa48a1915bfa1e190bfd3e267988b9100cb93006c808c fix-fortify-system-wrappers.patch +418a2a9f80c41ee004cb640968617cab283b99f3d109aaf6180b0088d60c84b0 fix-sandbox-membarrier.patch +14f281ee323aa682e04479019171bde243ac6227820856aa03b162179b14bfd9 fix-seccomp-bpf.patch +b19aaae7fc45db643f8d2540d96919c745ea341e36d9aea2df40e3e90eb951f0 fix-toolkit.patch +e24f71a6a0d8d4637b2081780c66b01be4eeb4dd496031270d0ae0b898be94d2 fix-tools.patch +5e0fcfde375837074baad21a8ab26aa442a7940617ebd074a6b238a48f2ceb63 fix-webrtc-glibcisms.patch +1d4a8f110d34da478f5597727eda9acacebd443dd86cce5bb64f898c01feabce mallinfo.patch +49b1c589bc3248fa6389c8b9ff9316c5c5f10cb7868436c9c47cab888bdc8df6 firefox-71-no-dbus.patch +b050ee807c000f26d09ff0c3e79f0149f195d802efa92b8740a75e7f07267064 firefox-71-no-accessibility.patch diff --git a/extra/firefox/depends b/extra/firefox/depends new file mode 100644 index 00000000..7b3a39b9 --- /dev/null +++ b/extra/firefox/depends @@ -0,0 +1,53 @@ +alsa-lib +atk +bzip2 +cairo +cbindgen make +clang make +expat +ffmpeg +fontconfig +freetype-harfbuzz +fribidi +gdk-pixbuf +glib +gtk+2 make +gtk+3 +hicolor-icon-theme +libICE +libSM +libX11 +libXau +libXcomposite +libXcursor +libXdamage +libXext +libXfixes +libXi +libXinerama +libXrandr +libXrender +libXt +libXxf86vm +libdrm +libepoxy +libffi +libjpeg-turbo +libpng +libvpx +libxcb +libxshmfence +llvm make +mesa +nasm make +nodejs make +pango +perl make +pixman +python make +python2 make +rust make +util-linux +yasm make +zip make +zlib diff --git a/extra/firefox/files/mozconfig b/extra/firefox/files/mozconfig new file mode 100644 index 00000000..fbfc81f5 --- /dev/null +++ b/extra/firefox/files/mozconfig @@ -0,0 +1,59 @@ +ac_add_options --prefix=/usr +ac_add_options --libdir=/usr/lib + +ac_add_options --enable-official-branding +ac_add_options --enable-optimize="$CFLAGS" +ac_add_options --enable-install-strip +ac_add_options --enable-strip + +ac_add_options --without-system-nspr +ac_add_options --without-system-nss +ac_add_options --with-system-jpeg +ac_add_options --with-system-zlib +ac_add_options --with-system-bz2 +ac_add_options --with-system-png + +# System 'libvpx' is too new. +ac_add_options --without-system-libvpx + +ac_add_options --with-system-pixman +ac_add_options --with-system-ffi + +ac_add_options --disable-gconf +ac_add_options --disable-profiling +ac_add_options --disable-accessibility +ac_add_options --disable-tests +ac_add_options --disable-system-extension-dirs +ac_add_options --disable-parental-controls +ac_add_options --disable-debug-symbols +ac_add_options --disable-callgrind +ac_add_options --disable-vtune + +# Settings for musl. +ac_add_options --disable-elf-hack +ac_add_options --disable-gold +ac_add_options --disable-jemalloc +ac_add_options --enable-release + +# ALSA/PulseAudio (removed in 70 (still present in 71b4(?!)) +ac_add_options --disable-pulseaudio +ac_add_options --enable-alsa + +ac_add_options --disable-startup-notification + +# Respect the user. +ac_add_options MOZ_SERVICES_METRICS= +ac_add_options MOZ_PAY= +ac_add_options MOZ_SERVICES_HEALTHREPORTER= +ac_add_options MOZ_SERVICES_FXACCOUNTS= +ac_add_options MOZ_SERVICES_METRICS= +ac_add_options MOZ_DATA_REPORTING= +ac_add_options MOZ_DEVICES= +ac_add_options MOZ_REQUIRE_SIGNING= +ac_add_options MOZ_TELEMETRY_REPORTING= +ac_add_options --disable-crashreporter +ac_add_options --disable-updater +ac_add_options --disable-dbus +ac_add_options --disable-eme +ac_add_options --disable-necko-wifi +ac_add_options --disable-webrtc diff --git a/extra/firefox/files/policies.json b/extra/firefox/files/policies.json new file mode 100644 index 00000000..f918c5b5 --- /dev/null +++ b/extra/firefox/files/policies.json @@ -0,0 +1,21 @@ +{ + "policies": { + "DisableAppUpdate": true, + "DisableFirefoxStudies": true, + "DisablePocket": true, + "DisableTelemetry": true, + "DontCheckDefaultBrowser": true, + "DisableFeedbackCommands": true, + "DisableFirefoxAccounts": true, + "DisableFirefoxScreenshots": true, + "DisableFirefoxStudies": true, + "DisableMasterPasswordCreation": true, + "DisableSetDesktopBackground": true, + "DisableSystemAddonUpdate": true, + "DontCheckDefaultBrowser": true, + "ExtensionUpdate": false, + "NetworkPrediction": false, + "OverridePostUpdatePage": "", + "CaptivePortal": false + } +} diff --git a/extra/firefox/files/stab.h b/extra/firefox/files/stab.h new file mode 100644 index 00000000..6f70af39 --- /dev/null +++ b/extra/firefox/files/stab.h @@ -0,0 +1,71 @@ +/* $OpenBSD: stab.h,v 1.3 2003/06/02 19:34:12 millert Exp $ */ +/* $NetBSD: stab.h,v 1.4 1994/10/26 00:56:25 cgd Exp $ */ + +/*- + * Copyright (c) 1991 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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. + * + * @(#)stab.h 5.2 (Berkeley) 4/4/91 + */ + +#ifndef _STAB_H_ +#define _STAB_H_ + +/* + * The following are symbols used by various debuggers and by the Pascal + * compiler. Each of them must have one (or more) of the bits defined by + * the N_STAB mask set. + */ + +#define N_GSYM 0x20 /* global symbol */ +#define N_FNAME 0x22 /* F77 function name */ +#define N_FUN 0x24 /* procedure name */ +#define N_STSYM 0x26 /* data segment variable */ +#define N_LCSYM 0x28 /* bss segment variable */ +#define N_MAIN 0x2a /* main function name */ +#define N_PC 0x30 /* global Pascal symbol */ +#define N_RSYM 0x40 /* register variable */ +#define N_SLINE 0x44 /* text segment line number */ +#define N_DSLINE 0x46 /* data segment line number */ +#define N_BSLINE 0x48 /* bss segment line number */ +#define N_SSYM 0x60 /* structure/union element */ +#define N_SO 0x64 /* main source file name */ +#define N_LSYM 0x80 /* stack variable */ +#define N_BINCL 0x82 /* include file beginning */ +#define N_SOL 0x84 /* included source file name */ +#define N_PSYM 0xa0 /* parameter variable */ +#define N_EINCL 0xa2 /* include file end */ +#define N_ENTRY 0xa4 /* alternate entry point */ +#define N_LBRAC 0xc0 /* left bracket */ +#define N_EXCL 0xc2 /* deleted include file */ +#define N_RBRAC 0xe0 /* right bracket */ +#define N_BCOMM 0xe2 /* begin common */ +#define N_ECOMM 0xe4 /* end common */ +#define N_ECOML 0xe8 /* end common (local name) */ +#define N_LENG 0xfe /* length of preceding entry */ + +#endif /* !_STAB_H_ */ diff --git a/extra/firefox/files/vendor.js b/extra/firefox/files/vendor.js new file mode 100644 index 00000000..65bc0d95 --- /dev/null +++ b/extra/firefox/files/vendor.js @@ -0,0 +1,619 @@ +// KISS' vendor.js. +// +// Sources: +// - GNU IceCat, +// - OpenBSD, +// - GHacks user.js +// - pyllyukko/user.js +// - anarcat/firefox-tmp +// - Debian + +// +// STARTUP +// + +pref("browser.newtab.preload", false); +pref("browser.newtabpage.directory.ping", ""); +pref("browser.newtabpage.directory.source", "data:application/json,{}"); +pref("browser.newtabpage.enabled", false); +pref("browser.newtabpage.enhanced", false); +pref("browser.newtabpage.introShown", false); +pref("browser.newtabpage.activity-stream.feeds.telemetry", false); +pref("browser.newtabpage.activity-stream.telemetry", false); +pref("browser.newtabpage.activity-stream.telemetry.ping.endpoint", ""); +pref("browser.newtabpage.activity-stream.telemetry.ut.events", false); +pref("browser.newtabpage.activity-stream.telemetry.structuredIngestion", false); +pref("browser.newtabpage.activity-stream.feeds.snippets", false); +pref("browser.newtabpage.activity-stream.asrouter.providers.snippets", ""); +pref("browser.newtabpage.activity-stream.feeds.section.topstories", false); +pref("browser.newtabpage.activity-stream.section.highlights.includePocket", false); +pref("browser.newtabpage.activity-stream.showSponsored", false); +pref("browser.newtabpage.activity-stream.feeds.discoverystreamfeed", false); + +// +// GEO +// + +pref("geo.enabled", false); +pref("geo.provider.use_gpsd", false); +pref("geo.wifi.uri", ""); +pref("browser.search.geoip.url", ""); +pref("browser.search.geoSpecificDefaults", false); +pref("browser.search.geoSpecificDefaults.url", ""); + +// +// LANGUAGE +// + +pref("intl.accept_languages", "en-US, en"); +pref("javascript.use_us_english_locale", true); +pref("intl.charset.fallback.override", "windows-1252"); + +// +// SILENT FIREFOX +// + +pref("app.update.auto", false); +pref("app.update.enabled", false); +pref("browser.newtabbage.enabled", false); +pref("browser.search.update", false); +pref("extensions.getAddons.showPane", false); +pref("extensions.htmlaboutaddons.recommendations.enabled", false); +pref("toolkit.telemetry.unified", false); +pref("toolkit.telemetry.server", "data:,"); +pref("toolkit.telemetry.archive.enabled", false); +pref("toolkit.telemetry.newProfilePing.enabled", false); +pref("toolkit.telemetry.shutdownPingSender.enabled", false); +pref("toolkit.telemetry.updatePing.enabled", false); +pref("toolkit.telemetry.bhrPing.enabled", false); +pref("toolkit.telemetry.firstShutdownPing.enabled", false); +pref("toolkit.telemetry.hybridContent.enabled", false); +pref("toolkit.telemetry.coverage.opt-out", true); +pref("toolkit.telemetry.shutdownPingSender.enabledFirstSession", false); +pref("toolkit.telemetry.server_owner", ""); +pref("toolkit.telemetry.geckoview.streaming", false); +pref("toolkit.telemetry.ecosystemtelemetry.enabled", false); +pref("toolkit.telemetry.cachedClientID", ""); +pref("toolkit.telemetry.enabled", false); +pref("toolkit.telemetry.rejected", true); +pref("toolkit.telemetry.server", ""); +pref("toolkit.telemetry.unifiedIsOptIn", false); +pref("toolkit.telemetry.prompted", 2); +pref("security.protectionspopup.recordEventTelemetry", false); +pref("security.identitypopup.recordEventTelemetry", false); +pref("privacy.trackingprotection.origin_telemetry.enabled", false); +pref("privacy.trackingprotection.pbmode.enabled", false); +pref("permissions.eventTelemetry.enabled", false); +pref("browser.urlbar.eventTelemetry.enabled", false); +pref("toolkit.coverage.opt-out", true); +pref("toolkit.coverage.endpoint.base", ""); +pref("datareporting.healthreport.uploadEnabled", false); +pref("datareporting.policy.dataSubmissionEnabled", false); +pref("datareporting.healthreport.about.reportUrl", "127.0.0.1"); +pref("datareporting.healthreport.documentServerURI", "127.0.0.1"); +pref("datareporting.policy.dataSubmissionPolicyBypassNotification", true); +pref("datareporting.policy.firstRunURL", ""); +pref("startup.homepage_welcome_url.additional", ""); +pref("browser.startup.firstrunSkipsHomepage", true); +pref("healthreport.uploadEnabled", false); +pref("social.toast-notifications.enabled", false); +pref("datareporting.healthreport.service.enabled", false); +pref("browser.slowStartup.notificationDisabled", true); +pref("network.http.sendRefererHeader", 2); +pref("network.http.referer.spoofSource", false); +pref("app.shield.optoutstudies.enabled", false); +pref("extensions.shield-recipe-client.enabled", false); +pref("browser.discovery.enabled", false); +pref("breakpad.reportURL", ""); +pref("browser.tabs.crashReporting.sendReport", false); +pref("browser.crashReports.unsubmittedCheck.enabled", false); +pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false); +pref("captivedetect.canonicalURL", ""); +pref("network.captive-portal-service.enabled", false); +pref("network.connectivity-service.enabled", false); +pref("extensions.blocklist.enabled", false); +pref("privacy.announcements.enabled", false); +pref("browser.snippets.enabled", false); +pref("browser.snippets.syncPromo.enabled", false); +pref("browser.snippets.geoUrl", "http://127.0.0.1/"); +pref("browser.snippets.updateUrl", "http://127.0.0.1/"); +pref("browser.snippets.statsUrl", "http://127.0.0.1/"); +pref("datareporting.policy.firstRunTime", 0); +pref("datareporting.policy.dataSubmissionPolicyVersion", 2); +pref("browser.webapps.checkForUpdates", 0); +pref("browser.webapps.updateCheckUrl", "http://127.0.0.1/"); +pref("dom.flyweb.enabled", false); +pref("services.sync.autoconnect", false); +pref("services.sync.engine.addons", false); +pref("services.sync.engine.bookmarks", false); +pref("services.sync.engine.history", false); +pref("services.sync.engine.passwords", false); +pref("services.sync.engine.prefs", false); +pref("services.sync.engine.tabs", false); +pref("extensions.webservice.discoverURL", ""); +pref("browser.shell.checkDefaultBrowser", false); +pref("shell.checkDefaultClient", false); +pref("browser.newtabpage.directory.source", 'data:application/json,{}'); +pref("browser.urlbar.suggest.searches", false); +pref("geo.wifi.scan", false); +pref("dom.push.connection.enabled", false); +pref("extensions.update.url", ""); +pref("extensions.update.background.url", ""); +pref("extensions.blocklist.detailsURL", ""); +pref("extensions.blocklist.itemURL", ""); +pref("extensions.blocklist.url", ""); +pref("extensions.hotfix.url", ""); +pref("extensions.getAddons.get.url", ""); +pref("extensions.getAddons.getWithPerformance.url", ""); +pref("extensions.getAddons.search.browseURL", ""); +pref("services.settings.server", ""); +pref("datareporting.healthreport.documentServerURI", ""); +pref("general.useragent.updates.enabled", false); +pref("general.useragent.updates.url", ""); +pref("identity.fxaccounts.auth.uri", ""); +pref("identity.fxaccounts.remote.root", ""); +pref("identity.fxaccounts.skipDeviceRegistration", true); +pref("browser.translation.bing.authURL", ""); +pref("browser.translation.bing.translateArrayURL", ""); +pref("browser.translation.yandex.translateURLOverride", ""); +pref("browser.translation.engine", "bing"); +pref("browser.aboutHomeSnippets.updateUrl", "nonexistent://test"); +pref("browser.newtabpage.activity-stream.default.sites", ""); +pref("browser.newtabpage.activity-stream.tippyTop.service.endpoint", ""); +pref("browser.uitour.pinnedTabUrl", ""); +pref("browser.uitour.url", ""); +pref("browser.search.isUS", true); +pref("browser.search.countryCode", "US"); +pref("browser.ping-centre.staging.endpoint", ""); +pref("browser.ping-centre.production.endpoint", ""); +pref("browser.contentblocking.report.monitor.sign_in_url", ""); +pref("browser.contentblocking.report.monitor.url", ""); +pref("identity.fxaccounts.service.monitorLoginUrl", ""); +pref("network.trr.resolvers", ""); +pref("network.trr.uri", ""); +pref("security.certerrors.mitm.priming.endpoint", ""); +pref("signon.management.page.breachAlertUrl", ""); +pref("network.connectivity-service.IPv4.url", ""); +pref("network.connectivity-service.IPv6.url", ""); +pref("accessibility.support.url", ""); +pref("app.feedback.baseURL", ""); +pref("app.normandy.shieldLearnMoreUrl", ""); +pref("app.update.url", ""); +pref("browser.chrome.errorReporter.infoURL", ""); +pref("browser.contentblocking.report.cookie.url", ""); +pref("browser.dictionaries.download.url", ""); +pref("browser.safebrowsing.provider.google.reportMalwareMistakeURL", ""); +pref("browser.safebrowsing.provider.google.reportPhishMistakeURL", ""); +pref("browser.safebrowsing.provider.google.reportURL", ""); +pref("browser.safebrowsing.provider.google4.dataSharingURL", ""); +pref("browser.safebrowsing.provider.google4.reportMalwareMistakeURL", ""); +pref("browser.safebrowsing.provider.google4.reportPhishMistakeURL", ""); +pref("browser.safebrowsing.provider.google4.reportURL", ""); +pref("browser.safebrowsing.reportPhishURL", ""); +pref("devtools.devices.url", ""); +pref("devtools.performance.recording.ui-base-url", ""); +pref("devtools.webide.templatesURL", ""); +pref("extensions.getAddons.compatOverides.url", ""); +pref("extensions.getAddons.discovery.api_url", ""); +pref("extensions.getAddons.langpacks.url", ""); +pref("extensions.recommendations.themeRecommendationUrl", ""); +pref("gecko.handlerService.schemes.webcal.0.name", ""); +pref("gecko.handlerService.schemes.webcal.0.uriTemplate", ""); +pref("gecko.handlerService.schemes.irc.0.name", ""); +pref("gecko.handlerService.schemes.irc.0.uriTemplate", ""); +pref("media.gmp-manager.url", ""); + +// Firefox connects to cloudfront on startup unless +// these are false/blank. +pref("browser.selfsupport.url", ""); + +// +// "SAFE" BROWSING +// + +pref("browser.safebrowsing.malware.enabled", false); +pref("browser.safebrowsing.phishing.enabled", false); +pref("browser.safebrowsing.downloads.enabled", false); +pref("browser.safebrowsing.downloads.remote.enabled", false); +pref("browser.safebrowsing.downloads.remote.url", ""); +pref("browser.safebrowsing.downloads.remote.block_potentially_unwanted", false); +pref("browser.safebrowsing.downloads.remote.block_uncommon", false); +pref("browser.safebrowsing.provider.mozilla.updateURL", ""); +pref("browser.safebrowsing.provider.mozilla.gethashURL", ""); +pref("browser.safebrowsing.provider.google.gethashURL", ""); +pref("browser.safebrowsing.provider.google.updateURL", ""); +pref("browser.safebrowsing.provider.google4.gethashURL", ""); +pref("browser.safebrowsing.provider.google4.updateURL", ""); +pref("privacy.trackingprotection.introURL", ""); + +// +// EXPERIMENTS +// + +pref("app.normandy.enabled", false); +pref("app.normandy.api_url", ""); +pref("app.normandy.user_id", ""); +pref("extensions.systemAddon.update.url", ""); +pref("browser.ping-centre.telemetry", false); +pref("extensions.screenshots.disabled", true); +pref("extensions.screenshots.upload-disabled", true); +pref("extensions.formautofill.addresses.enabled", false); +pref("extensions.formautofill.available", "off"); +pref("extensions.formautofill.creditCards.enabled", false); +pref("extensions.formautofill.heuristics.enabled", false); +pref("extensions.webcompat-reporter.enabled", false); +pref("experiments.supported", false); +pref("experiments.enabled", false); +pref("experiments.manifest.uri", ""); +pref("network.allow-experiments", false); +pref("privacy.trackingprotection.enabled", false); + +// +// IMPLICIT OUTBOUND CONNECTIONS +// + +pref("network.prefetch-next", false); +pref("network.dns.disablePrefetch", true); +pref("network.dns.disablePrefetchFromHTTPS", true); +pref("network.http.keep-alive.timeout", 15); +pref("network.predictor.enabled", false); +pref("network.predictor.enable-prefetch", false); +pref("network.http.speculative-parallel-limit", 0); +pref("browser.startup.page", 0); +pref("browser.send_pings", false); +pref("browser.send_pings.require_same_host", true); +pref("network.dns.blockDotOnion", true); +pref("browser.casting.enabled", false); + +// +// PROTOCOLS +// + +pref("network.dns.disableIPv6", true); +pref("network.http.altsvc.enabled", false); +pref("network.http.altsvc.oe", false); +pref("network.proxy.socks_remote_dns", true); +pref("network.trr.mode", 5); +pref("network.file.disable_unc_paths", true); +pref("network.gio.supported-protocols", ""); +pref("network.http.pipelining", true); +pref("network.http.proxy.pipelining", true); +pref("network.http.pipelining.maxrequests", 10); +pref("nglayout.initialpaint.delay", 0); +pref("network.protocol-handler.warn-external-default", true); +pref("network.protocol-handler.external.http", false); +pref("network.protocol-handler.external.https", false); +pref("network.protocol-handler.external.javascript",false); +pref("network.protocol-handler.external.moz-extension", false); +pref("network.protocol-handler.external.ftp", false); +pref("network.protocol-handler.external.file", false); +pref("network.protocol-handler.external.about", false); +pref("network.protocol-handler.external.chrome", false); +pref("network.protocol-handler.external.blob", false); +pref("network.protocol-handler.external.data", false); +pref("network.protocol-handler.expose-all", false); +pref("network.protocol-handler.expose.http", true); +pref("network.protocol-handler.expose.https", true); +pref("network.protocol-handler.expose.javascript", true); +pref("network.protocol-handler.expose.moz-extension", true); +pref("network.protocol-handler.expose.ftp", true); +pref("network.protocol-handler.expose.file", true); +pref("network.protocol-handler.expose.about", true); +pref("network.protocol-handler.expose.chrome", true); +pref("network.protocol-handler.expose.blob", true); +pref("network.protocol-handler.expose.data", true); + +// +// SEARCH / AUTOFILL / FORMS +// + +pref("browser.fixup.alternate.enabled", false); +pref("browser.urlbar.trimURLs", false); +pref("browser.sessionhistory.max_entries", 10); +pref("layout.css.visited_links_enabled", false); +pref("browser.search.suggest.enabled", false); +pref("browser.urlbar.usepreloadedtopurls.enabled", false); +pref("browser.urlbar.speculativeConnect.enabled", false); +pref("browser.formfill.enable", false); +pref("browser.taskbar.lists.enabled", false); +pref("browser.taskbar.lists.frequent.enabled", false); +pref("browser.taskbar.lists.recent.enabled", false); +pref("browser.taskbar.lists.tasks.enabled", false); +pref("browser.taskbar.previews.enable", false); + +// +// PASSWORDS +// + +pref("signon.autofillForms", false); +pref("signon.formlessCapture.enabled", false); +pref("network.auth.subresource-http-auth-allow", 1); + +// +// CACHE +// + +pref("browser.cache.disk.enable", false); +pref("browser.sessionstore.privacy_level", 2); +pref("browser.sessionstore.interval", 30000); +pref("toolkit.winRegisterApplicationRestart", false); +pref("browser.shell.shortcutFavicons", false); +pref("alerts.showFavicons", false); + +// +// CIPHERS +// + +pref("security.ssl.require_safe_negotiation", true); +pref("security.ssl.disable_session_identifiers", true); +pref("security.ssl.errorReporting.automatic", false); +pref("security.tls.enable_0rtt_data", false); +pref("security.ssl.enable_ocsp_stapling", true); +pref("security.OCSP.enabled", 1); +pref("security.OCSP.require", true); +pref("security.pki.sha1_enforcement_level", 1); +pref("security.family_safety.mode", 0); +pref("security.cert_pinning.enforcement_level", 2); +pref("security.ssl.errorReporting.enabled", false); +pref("security.ssl.errorReporting.url", ""); +pref("security.mixed_content.block_active_content", true); +pref("security.mixed_content.block_display_content", true); +pref("security.mixed_content.block_object_subrequest", true); +pref("security.ssl.treat_unsafe_negotiation_as_broken", true); +pref("browser.ssl_override_behavior", 1); +pref("browser.xul.error_pages.expert_bad_cert", true); +pref("security.insecure_connection_icon.enabled", true); +pref("security.insecure_connection_text.enabled", true); +pref("security.ssl3.ecdhe_ecdsa_rc4_128_sha", false); +pref("security.ssl3.ecdhe_rsa_rc4_128_sha", false); +pref("security.ssl3.rsa_rc4_128_md5", false); +pref("security.ssl3.rsa_rc4_128_sha", false); +pref("security.tls.version.min", 1); +pref("security.ssl3.dhe_rsa_aes_128_sha", false); +pref("security.ssl3.dhe_rsa_aes_256_sha", false); + +// +// FONTS +// + +pref("gfx.font_rendering.opentype_svg.enabled", false); +pref("gfx.font_rendering.graphite.enabled", false); + +// +// HEADERS / REFERERS +// + +pref("network.http.referer.XOriginPolicy", 2); +pref("network.http.referer.XOriginTrimmingPolicy", 0); +pref("network.http.referer.hideOnionSource", true); +pref("privacy.donottrackheader.enabled", true); + +// +// CONTAINERS +// + +pref("privacy.userContext.ui.enabled", true); +pref("privacy.userContext.enabled", true); +pref("privacy.usercontext.about_newtab_segregation.enabled", true); +pref("privacy.userContext.longPressBehavior", 2); + +// +// PLUGINS +// + +pref("plugin.state.flash", 0); +pref("plugin.state.java", 0); +pref("media.gmp-widevinecdm.visible", false); +pref("media.gmp-widevinecdm.enabled", false); +pref("media.eme.enabled", false); +pref("media.gmp-manager.url.override", "data:text/plain,"); +pref("browser.eme.ui.enabled", false); +pref("media.eme.apiVisible", false); +pref("media.gmp-provider.enabled", false); +pref("media.gmp-gmpopenh264.enabled", false); +pref("media.gmp-gmpopenh264.provider.enabled", false); +pref("plugins.hide_infobar_for_missing_plugin", true); +pref("plugins.hide_infobar_for_outdated_plugin", true); +pref("plugins.notifyMissingFlash", false); +pref("dom.ipc.plugins.flash.subprocess.crashreporter.enabled", false); +pref("dom.ipc.plugins.reportCrashURL", false); +pref("plugins.click_to_play", true); + +// +// CAMERA / MIC +// + +pref("media.peerconnection.enabled", false); +pref("media.peerconnection.ice.default_address_only", true); +pref("media.peerconnection.ice.no_host", true); +pref("webgl.disabled", true); +pref("webgl.dxgl.enabled", false); +pref("webgl.enable-webgl2", false); +pref("webgl.min_capability_mode", true); +pref("webgl.disable-extensions", true); +pref("webgl.disable-fail-if-major-performance-caveat", true); +pref("media.getusermedia.screensharing.enabled", false); +pref("media.getusermedia.browser.enabled", false); +pref("media.getusermedia.audiocapture.enabled", false); +pref("media.autoplay.enabled.user-gestures-needed", false); +pref("media.block-autoplay-until-in-foreground", true); + +// +// WINDOW MEDDLING / POPUPS +// + +pref("dom.disable_window_open_feature.close", true); +pref("dom.disable_window_open_feature.location", true); +pref("dom.disable_window_open_feature.menubar", true); +pref("dom.disable_window_open_feature.minimizable", true); +pref("dom.disable_window_open_feature.personalbar", true); +pref("dom.disable_window_open_feature.resizable", true); +pref("dom.disable_window_open_feature.status", true); +pref("dom.disable_window_open_feature.titlebar", true); +pref("dom.disable_window_open_feature.toolbar", true); +pref("dom.disable_window_move_resize", true); +pref("browser.link.open_newwindow", 3); +pref("browser.link.open_newwindow.restriction", 0); +pref("dom.disable_open_during_load", true); +pref("dom.popup_allowed_events", "click dblclick"); + +// +// WEB WORKERS +// + +pref("dom.serviceWorkers.enabled", false); +pref("dom.push.enabled", false); +pref("dom.webnotifications.enabled", false); +pref("dom.webnotifications.serviceworker.enabled", false); +pref("permissions.default.desktop-notification", 2); + +// +// DOM / JAVASCRIPT +// + +pref("dom.event.clipboardevents.enabled", false); +pref("middlemouse.paste", false); +pref("dom.allow_cut_copy", false); +pref("dom.disable_beforeunload", true); +pref("dom.vibrator.enabled", false); +pref("javascript.options.asmjs", false); +pref("javascript.options.wasm", false); +pref("dom.targetBlankNoOpener.enabled", true); + +// +// HARDWARE FINGERPRINTING +// + +pref("dom.battery.enabled", false); +pref("dom.vr.enabled", false); +pref("media.navigator.enabled", false); +pref("dom.webaudio.enabled", false); + +// +// MISC +// + +pref("accessibility.force_disabled", 1); +pref("beacon.enabled", false); +pref("browser.helperApps.deleteTempFileOnExit", true); +pref("browser.pagethumbnails.capturing_disabled", true); +pref("browser.tabs.remote.allowLinkedWebInFileUriProcess", false); +pref("browser.uitour.enabled", false); +pref("devtools.chrome.enabled", false); +pref("devtools.debugger.remote-enabled", false); +pref("devtools.webide.enabled", false); +pref("devtools.webide.autoinstallADBExtension", false); +pref("middlemouse.contentLoadURL", false); +pref("network.http.redirection-limit", 10); +pref("permissions.manager.defaultsUrl", ""); +pref("webchannel.allowObject.urlWhitelist", ""); +pref("network.IDN_show_punycode", true); +pref("social.whitelist", ""); +pref("social.directories", ""); +pref("social.shareDirectory", ""); +pref("browser.apps.URL", ""); +pref("dom.enable_user_timing", false); +pref("dom.mozTCPSocket.enabled", false); +pref("dom.netinfo.enabled", false); +pref("dom.telephony.enabled", false); +pref("media.webspeech.recognition.enable", false); +pref("device.sensors.enabled", false); +pref("media.webspeech.synth.enabled", false); +pref("dom.gamepad.enabled", false); +pref("dom.enable_resource_timing", false); +pref("dom.archivereader.enabled", false); +pref("camera.control.face_detection.enabled", false); +pref("browser.search.region", "US"); +pref("intl.locale.matchOS", false); +pref("clipboard.autocopy", false); +pref("browser.fixup.alternate.enabled", false); +pref("media.video_stats.enabled", false); +pref("devtools.chrome.enabled", false); +pref("devtools.debugger.force-local", true); +pref("browser.startup.homepage_override.mstone", "ignore"); + +// Taken from TOR browser. +pref("general.buildID.override", "20100101"); +pref("browser.startup.homepage_override.buildID", "20100101"); +pref("toolkit.telemetry.previousBuildID", "20100101"); + +// +// DOWNLOADS +// + +pref("browser.download.useDownloadDir", false); +pref("browser.download.manager.addToRecentDocs", false); +pref("browser.download.hide_plugins_without_extensions", false); + +// +// EXTENSIONS +// + +pref("extensions.enabledScopes", 5); +pref("extensions.autoDisableScopes", 15); +pref("extensions.update.enabled", false); +pref("xpinstall.signatures.required", true); +pref("extensions.getAddons.cache.enabled", false); +pref("lightweightThemes.update.enabled", false); +pref("extensions.systemAddon.update.enabled", false); +pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr", false); +pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false); +pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false); + +// +// STORAGE +// + +pref("browser.cache.offline.enable", false); +pref("offline-apps.allow_by_default", false); + +// +// SHUTDOWN +// + +pref("privacy.sanitize.sanitizeOnShutdown", true); +pref("privacy.clearOnShutdown.formdata", true); +pref("privacy.clearOnShutdown.offlineApps", true); +pref("privacy.clearOnShutdown.sessions", true); +pref("privacy.clearOnShutdown.siteSettings", false); +pref("privacy.cpd.cache", true); +pref("privacy.cpd.cookies", true); +pref("privacy.cpd.formdata", true); +pref("privacy.cpd.history", true); +pref("privacy.cpd.offlineApps", true); +pref("privacy.cpd.passwords", false); +pref("privacy.cpd.sessions", true); +pref("privacy.cpd.siteSettings", false); +pref("privacy.sanitize.timeSpan", 0); + +// +// ISOLATION +// + +pref("privacy.firstparty.isolate", true); +pref("privacy.firstparty.isolate.restrict_opener_access", true); +pref("browser.startup.blankWindow", false); + +// +// POCKET / HELLO +// + +pref("loop.enabled", false); +pref("loop.feedback.baseUrl", ""); +pref("loop.gettingStarted.url", ""); +pref("loop.learnMoreUrl", ""); +pref("loop.legal.ToS_url", ""); +pref("loop.legal.privacy_url", ""); +pref("loop.oauth.google.redirect_uri", ""); +pref("loop.oauth.google.scope", ""); +pref("loop.server", ""); +pref("loop.soft_start_hostname", ""); +pref("loop.support_url", ""); +pref("loop.throttled2", false); +pref("loop.logDomains", false); +pref("browser.pocket.enabled", false); +pref("browser.pocket.api", ""); +pref("browser.pocket.site", ""); +pref("browser.pocket.oAuthConsumerKey", ""); +pref("browser.pocket.useLocaleList", false); +pref("browser.pocket.enabledLocales", ""); diff --git a/extra/firefox/patches/firefox-71-no-accessibility.patch b/extra/firefox/patches/firefox-71-no-accessibility.patch new file mode 100644 index 00000000..b744c577 --- /dev/null +++ b/extra/firefox/patches/firefox-71-no-accessibility.patch @@ -0,0 +1,13 @@ +diff -r 22ced1a079e0 accessible/ipc/extension/other/moz.build +--- a/accessible/ipc/extension/other/moz.build Mon Sep 16 22:30:52 2019 +0300 ++++ b/accessible/ipc/extension/other/moz.build Tue Sep 17 23:17:02 2019 +0200 +@@ -9,7 +9,8 @@ + + IPDL_SOURCES += ['PDocAccessiblePlatformExt.ipdl'] + +-if CONFIG['ACCESSIBILITY']: ++#if CONFIG['ACCESSIBILITY']: ++if 1: + EXPORTS.mozilla.a11y += [ + 'DocAccessiblePlatformExtChild.h', + 'DocAccessiblePlatformExtParent.h', diff --git a/extra/firefox/patches/firefox-71-no-dbus.patch b/extra/firefox/patches/firefox-71-no-dbus.patch new file mode 100644 index 00000000..0dba95a9 --- /dev/null +++ b/extra/firefox/patches/firefox-71-no-dbus.patch @@ -0,0 +1,425 @@ +diff --git a/Cargo.lock b/Cargo.lock +index e0fd54008d..c8a3033238 100644 +--- a/Cargo.lock ++++ b/Cargo.lock +@@ -72,24 +72,10 @@ dependencies = [ + "winapi 0.3.6 (git+https://github.com/froydnj/winapi-rs?branch=aarch64)", + ] + +-[[package]] +-name = "audio_thread_priority" +-version = "0.20.2" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-dependencies = [ +- "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "dbus 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "mach 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.6 (git+https://github.com/froydnj/winapi-rs?branch=aarch64)", +-] +- + [[package]] + name = "audioipc" + version = "0.2.4" + dependencies = [ +- "audio_thread_priority 0.20.2 (registry+https://github.com/rust-lang/crates.io-index)", + "bincode 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bytes 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)", +@@ -117,7 +103,6 @@ dependencies = [ + name = "audioipc-client" + version = "0.4.0" + dependencies = [ +- "audio_thread_priority 0.20.2 (registry+https://github.com/rust-lang/crates.io-index)", + "audioipc 0.2.4", + "cubeb-backend 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "futures 0.1.23 (registry+https://github.com/rust-lang/crates.io-index)", +@@ -130,7 +115,6 @@ dependencies = [ + name = "audioipc-server" + version = "0.2.3" + dependencies = [ +- "audio_thread_priority 0.20.2 (registry+https://github.com/rust-lang/crates.io-index)", + "audioipc 0.2.4", + "cubeb-core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", +@@ -837,15 +821,6 @@ dependencies = [ + "syn 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + ] + +-[[package]] +-name = "dbus" +-version = "0.6.4" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-dependencies = [ +- "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)", +- "libdbus-sys 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +-] +- + [[package]] + name = "deflate" + version = "0.7.19" +@@ -1219,7 +1194,6 @@ name = "gkrust-shared" + version = "0.1.0" + dependencies = [ + "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "audio_thread_priority 0.20.2 (registry+https://github.com/rust-lang/crates.io-index)", + "audioipc-client 0.4.0", + "audioipc-server 0.2.3", + "authenticator 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", +@@ -1559,14 +1533,6 @@ name = "libc" + version = "0.2.60" + source = "registry+https://github.com/rust-lang/crates.io-index" + +-[[package]] +-name = "libdbus-sys" +-version = "0.1.5" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-dependencies = [ +- "pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +-] +- + [[package]] + name = "libloading" + version = "0.5.0" +@@ -3811,7 +3777,6 @@ dependencies = [ + "checksum atomic 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c210c1f4db048cda477b652d170572d84c9640695835f17663595d3bd543fc28" + "checksum atomic_refcell 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fb2dcb6e6d35f20276943cc04bb98e538b348d525a04ac79c10021561d202f21" + "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" +-"checksum audio_thread_priority 0.20.2 (registry+https://github.com/rust-lang/crates.io-index)" = "197b2d259505d11c92d266e1784f01cc935eb764d2f54e16aedf4e5085197871" + "checksum authenticator 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ec149e5d5d4caa2c9ead53a8ce1ea9c4204c388c65bf3b96c2d1dc0fcf4aeb66" + "checksum autocfg 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "b671c8fb71b457dd4ae18c4ba1e59aa81793daacc361d82fcd410cef0d491875" + "checksum backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a" +@@ -3872,7 +3837,6 @@ dependencies = [ + "checksum darling 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3fe629a532efad5526454efb0700f86d5ad7ff001acb37e431c8bf017a432a8e" + "checksum darling_core 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ee54512bec54b41cf2337a22ddfadb53c7d4c738494dc2a186d7b037ad683b85" + "checksum darling_macro 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0cd3e432e52c0810b72898296a69d66b1d78d1517dff6cde7a130557a55a62c1" +-"checksum dbus 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b9e1b39f3f6aa3d4a1522c4f0f9f1e9e9167bd93740a8690874caa7cf8ce47d7" + "checksum deflate 0.7.19 (registry+https://github.com/rust-lang/crates.io-index)" = "8a6abb26e16e8d419b5c78662aa9f82857c2386a073da266840e474d5055ec86" + "checksum derive_more 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3f57d78cf3bd45270dad4e70c21ec77a960b36c7a841ff9db76aaa775a8fb871" + "checksum devd-rs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0d009f166c0d9e9f9909dc751630b3a6411ab7f85a153d32d01deb364ffe52a7" +@@ -3931,7 +3895,6 @@ dependencies = [ + "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" + "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" + "checksum libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)" = "d44e80633f007889c7eff624b709ab43c92d708caad982295768a7b13ca3b5eb" +-"checksum libdbus-sys 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "18cb88963258d00f4962205dbb5933d82780d9962c8c8a064b651d2ad7189210" + "checksum libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3ad660d7cb8c5822cd83d10897b0f1f1526792737a179e73896152f85b88c2" + "checksum libudev 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ea626d3bdf40a1c5aee3bcd4f40826970cae8d80a8fec934c82a63840094dcfe" + "checksum libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe" +diff --git a/dom/ipc/ContentChild.cpp b/dom/ipc/ContentChild.cpp +index 393fb53c02..15ddd2cf70 100644 +--- a/dom/ipc/ContentChild.cpp ++++ b/dom/ipc/ContentChild.cpp +@@ -107,9 +107,7 @@ + #include "nsIStringBundle.h" + #include "nsIWorkerDebuggerManager.h" + #include "nsGeolocation.h" +-#include "audio_thread_priority.h" + #include "nsIConsoleService.h" +-#include "audio_thread_priority.h" + + #if !defined(XP_WIN) + # include "mozilla/Omnijar.h" +@@ -1782,9 +1780,6 @@ mozilla::ipc::IPCResult ContentChild::RecvSetProcessSandbox( + } else { + // Pre-start audio before sandboxing; see bug 1443612. + if (Preferences::GetBool("media.cubeb.sandbox")) { +- if (atp_set_real_time_limit(0, 48000)) { +- NS_WARNING("could not set real-time limit at process startup"); +- } + InstallSoftRealTimeLimitHandler(); + } else { + Unused << CubebUtils::GetCubebContext(); +diff --git a/dom/media/GraphRunner.cpp b/dom/media/GraphRunner.cpp +index 8ff3391f4e..7a97faae76 100644 +--- a/dom/media/GraphRunner.cpp ++++ b/dom/media/GraphRunner.cpp +@@ -13,7 +13,6 @@ + #include "nsISupportsImpl.h" + #include "prthread.h" + #include "Tracing.h" +-#include "audio_thread_priority.h" + + namespace mozilla { + +@@ -93,9 +92,6 @@ bool GraphRunner::OneIteration(GraphTime aStateEnd) { + void GraphRunner::Run() { + PR_SetCurrentThreadName("GraphRunner"); + +- atp_handle* handle = +- atp_promote_current_thread_to_real_time(0, mGraph->GraphRate()); +- + MonitorAutoLock lock(mMonitor); + while (true) { + while (mThreadState == ThreadState::Wait) { +@@ -111,10 +107,6 @@ void GraphRunner::Run() { + mMonitor.Notify(); + } + +- if (handle) { +- atp_demote_current_thread_from_real_time(handle); +- } +- + dom::WorkletThread::DeleteCycleCollectedJSContext(); + } + +diff --git a/dom/media/UnderrunHandlerLinux.cpp b/dom/media/UnderrunHandlerLinux.cpp +index af5c84538e..23bf97a31f 100644 +--- a/dom/media/UnderrunHandlerLinux.cpp ++++ b/dom/media/UnderrunHandlerLinux.cpp +@@ -9,7 +9,6 @@ + + #include <mozilla/Sprintf.h> + #include <mozilla/Atomics.h> +-#include "audio_thread_priority.h" + + namespace mozilla { + +@@ -57,20 +56,6 @@ void InstallSoftRealTimeLimitHandler() { + } + + void DemoteThreadFromRealTime() { +- atp_thread_info* info = atp_get_current_thread_info(); +- if (!info) { +- NS_WARNING("Could not get current thread info when demoting thread."); +- return; +- } +- int rv = atp_demote_thread_from_real_time(info); +- if (rv) { +- NS_WARNING("Could not demote thread from real-time."); +- return; +- } +- rv = atp_free_thread_info(info); +- if (rv) { +- NS_WARNING("Could not free atp_thread_info struct"); +- } + gRealtimeLimitReached = false; + } + +diff --git a/dom/media/moz.build b/dom/media/moz.build +index 716c6a2322..840465f04a 100644 +--- a/dom/media/moz.build ++++ b/dom/media/moz.build +@@ -101,7 +101,6 @@ XPIDL_SOURCES += [ + XPIDL_MODULE = 'dom_media' + + EXPORTS += [ +- '../../third_party/rust/audio_thread_priority/audio_thread_priority.h', + 'ADTSDecoder.h', + 'ADTSDemuxer.h', + 'AsyncLogger.h', +diff --git a/media/audioipc/audioipc/Cargo.toml b/media/audioipc/audioipc/Cargo.toml +index 286e16789b..c34775cea1 100644 +--- a/media/audioipc/audioipc/Cargo.toml ++++ b/media/audioipc/audioipc/Cargo.toml +@@ -19,7 +19,6 @@ serde = "1.*.*" + serde_derive = "1.*.*" + tokio = "0.1" + tokio-io = "0.1" +-audio_thread_priority = "0.20.2" + + [target.'cfg(unix)'.dependencies] + iovec = "0.1" +diff --git a/media/audioipc/audioipc/src/messages.rs b/media/audioipc/audioipc/src/messages.rs +index 9a2ca4d59e..612e8d5050 100644 +--- a/media/audioipc/audioipc/src/messages.rs ++++ b/media/audioipc/audioipc/src/messages.rs +@@ -9,8 +9,6 @@ use cubeb::{self, ffi}; + use std::ffi::{CStr, CString}; + use std::os::raw::{c_char, c_int, c_uint}; + use std::ptr; +-#[cfg(target_os = "linux")] +-use audio_thread_priority::RtPriorityThreadInfo; + + #[derive(Debug, Serialize, Deserialize)] + pub struct Device { +@@ -209,9 +207,6 @@ pub enum ServerMessage { + StreamSetVolume(usize, f32), + StreamGetCurrentDevice(usize), + StreamRegisterDeviceChangeCallback(usize, bool), +- +- #[cfg(target_os = "linux")] +- PromoteThreadToRealTime([u8; std::mem::size_of::<RtPriorityThreadInfo>()]), + } + + // Server -> Client messages. +diff --git a/media/audioipc/client/Cargo.toml b/media/audioipc/client/Cargo.toml +index 866cde7e98..eaf9a62cc7 100644 +--- a/media/audioipc/client/Cargo.toml ++++ b/media/audioipc/client/Cargo.toml +@@ -9,7 +9,6 @@ description = "Cubeb Backend for talking to remote cubeb server." + edition = "2018" + + [dependencies] +-audio_thread_priority = "0.20.2" + audioipc = { path="../audioipc" } + cubeb-backend = "0.6.0" + futures = { version="0.1.18", default-features=false, features=["use_std"] } +diff --git a/media/audioipc/client/src/context.rs b/media/audioipc/client/src/context.rs +index c20e281248..e13dbc2d8d 100644 +--- a/media/audioipc/client/src/context.rs ++++ b/media/audioipc/client/src/context.rs +@@ -6,10 +6,6 @@ + use crate::{assert_not_in_callback, run_in_callback}; + use crate::stream; + use crate::{ClientStream, G_SERVER_FD, CPUPOOL_INIT_PARAMS}; +-#[cfg(not(target_os = "linux"))] +-use audio_thread_priority::promote_current_thread_to_real_time; +-#[cfg(target_os = "linux")] +-use audio_thread_priority::get_current_thread_info; + use audioipc::codec::LengthDelimitedCodec; + use audioipc::frame::{framed, Framed}; + use audioipc::platformhandle_passing::{framed_with_platformhandles, FramedWithPlatformHandles}; +@@ -91,34 +87,6 @@ fn open_server_stream() -> io::Result<audioipc::MessageStream> { + } + } + +-#[cfg(target_os = "linux")] +-fn promote_thread(rpc: &rpc::ClientProxy<ServerMessage, ClientMessage>) +-{ +- match get_current_thread_info() { +- Ok(info) => { +- let bytes = info.serialize(); +- // Don't wait for the response, this is on the callback thread, which must not block. +- rpc.call(ServerMessage::PromoteThreadToRealTime(bytes)); +- } +- Err(_) => { +- warn!("Could not remotely promote thread to RT."); +- } +- } +-} +- +-#[cfg(not(target_os = "linux"))] +-fn promote_thread(_rpc: &rpc::ClientProxy<ServerMessage, ClientMessage>) +-{ +- match promote_current_thread_to_real_time(0, 48000) { +- Ok(_) => { +- info!("Audio thread promoted to real-time."); +- } +- Err(_) => { +- warn!("Could not promote thread to real-time."); +- } +- } +-} +- + fn register_thread(callback: Option<extern "C" fn(*const ::std::os::raw::c_char)>) { + if let Some(func) = callback { + let thr = thread::current(); +@@ -127,12 +95,6 @@ fn register_thread(callback: Option<extern "C" fn(*const ::std::os::raw::c_char) + } + } + +-fn promote_and_register_thread(rpc: &rpc::ClientProxy<ServerMessage, ClientMessage>, +- callback: Option<extern "C" fn(*const ::std::os::raw::c_char)>) { +- promote_thread(rpc); +- register_thread(callback); +-} +- + #[derive(Default)] + struct DeviceCollectionCallback { + cb: ffi::cubeb_device_collection_changed_callback, +@@ -235,7 +197,6 @@ impl ContextOps for ClientContext { + + let cpu_pool = futures_cpupool::Builder::new() + .name_prefix("AudioIPC") +- .after_start(move || promote_and_register_thread(&rpc2, params.thread_create_callback)) + .pool_size(params.pool_size) + .stack_size(params.stack_size) + .create(); +diff --git a/media/audioipc/server/Cargo.toml b/media/audioipc/server/Cargo.toml +index 8a628e7090..31f23cbe78 100644 +--- a/media/audioipc/server/Cargo.toml ++++ b/media/audioipc/server/Cargo.toml +@@ -9,7 +9,6 @@ description = "Remote cubeb server" + edition = "2018" + + [dependencies] +-audio_thread_priority = "0.20.2" + audioipc = { path = "../audioipc" } + cubeb-core = "0.6.0" + futures = "0.1.18" +diff --git a/media/audioipc/server/src/lib.rs b/media/audioipc/server/src/lib.rs +index 63b373fe8f..75f8b99123 100644 +--- a/media/audioipc/server/src/lib.rs ++++ b/media/audioipc/server/src/lib.rs +@@ -11,7 +11,6 @@ extern crate log; + #[macro_use] + extern crate lazy_static; + +-use audio_thread_priority::promote_current_thread_to_real_time; + use audioipc::core; + use audioipc::platformhandle_passing::framed_with_platformhandles; + use audioipc::rpc; +@@ -64,12 +63,6 @@ fn run() -> Result<ServerWrapper> { + trace!("Starting up cubeb audio server event loop thread..."); + + let callback_thread = core::spawn_thread("AudioIPC Callback RPC", || { +- match promote_current_thread_to_real_time(0, 48000) { +- Ok(_) => {} +- Err(_) => { +- debug!("Failed to promote audio callback thread to real-time."); +- } +- } + trace!("Starting up cubeb audio callback event loop thread..."); + Ok(()) + }) +diff --git a/media/audioipc/server/src/server.rs b/media/audioipc/server/src/server.rs +index 3d98c8fed2..35fff91130 100644 +--- a/media/audioipc/server/src/server.rs ++++ b/media/audioipc/server/src/server.rs +@@ -30,8 +30,6 @@ use std::rc::Rc; + use std::{panic, slice}; + use tokio::reactor; + use tokio::runtime::current_thread; +-#[cfg(target_os = "linux")] +-use audio_thread_priority::{RtPriorityThreadInfo, promote_thread_to_real_time}; + + use crate::errors::*; + +@@ -521,21 +519,6 @@ impl CubebServer { + ) + .unwrap_or_else(error) + }, +- +- #[cfg(target_os = "linux")] +- ServerMessage::PromoteThreadToRealTime(thread_info) => { +- let info = RtPriorityThreadInfo::deserialize(thread_info); +- match promote_thread_to_real_time(info, 0, 48000) { +- Ok(_) => { +- info!("Promotion of content process thread to real-time OK"); +- } +- Err(_) => { +- warn!("Promotion of content process thread to real-time error"); +- } +- } +- ClientMessage::ThreadPromoted +- }, +- + }; + + trace!("process_msg: req={:?}, resp={:?}", msg, resp); +diff --git a/toolkit/library/rust/shared/Cargo.toml b/toolkit/library/rust/shared/Cargo.toml +index 190503e2ab..dd7f0a5234 100644 +--- a/toolkit/library/rust/shared/Cargo.toml ++++ b/toolkit/library/rust/shared/Cargo.toml +@@ -40,7 +40,6 @@ bitsdownload = { path = "../../../components/bitsdownload", optional = true } + storage = { path = "../../../../storage/rust" } + bookmark_sync = { path = "../../../components/places/bookmark_sync", optional = true } + shift_or_euc_c = "0.1.0" +-audio_thread_priority = "0.20.2" + mdns_service = { path="../../../../media/mtransport/mdns_service", optional = true } + + [build-dependencies] +diff --git a/toolkit/library/rust/shared/lib.rs b/toolkit/library/rust/shared/lib.rs +index f76f53436d..318f904703 100644 +--- a/toolkit/library/rust/shared/lib.rs ++++ b/toolkit/library/rust/shared/lib.rs +@@ -48,8 +48,6 @@ extern crate shift_or_euc_c; + + extern crate arrayvec; + +-extern crate audio_thread_priority; +- + #[cfg(feature = "webrtc")] + extern crate mdns_service; + diff --git a/extra/firefox/patches/fix-fortify-system-wrappers.patch b/extra/firefox/patches/fix-fortify-system-wrappers.patch new file mode 100644 index 00000000..17cf7e30 --- /dev/null +++ b/extra/firefox/patches/fix-fortify-system-wrappers.patch @@ -0,0 +1,13 @@ +The wrapper features.h gets pulled in by system headers causing thigns to +break. We work around it by simply not wrap features.h + +--- ./config/system-headers.mozbuild.orig ++++ ./config/system-headers.mozbuild +@@ -229,7 +229,6 @@ + 'execinfo.h', + 'extras.h', + 'fcntl.h', +- 'features.h', + 'fenv.h', + 'ffi.h', + 'fibdef.h', diff --git a/extra/firefox/patches/fix-sandbox-membarrier.patch b/extra/firefox/patches/fix-sandbox-membarrier.patch new file mode 100644 index 00000000..4bd3b80d --- /dev/null +++ b/extra/firefox/patches/fix-sandbox-membarrier.patch @@ -0,0 +1,54 @@ +allow usage of SYS_membarrier, needed since musl-1.1.22 + +Taken from voidlinux: https://github.com/void-linux/void-packages/commit/4198411ac3b9e2620e171c662df82008da0faebb + +--- a/security/sandbox/linux/SandboxFilter.cpp ++++ b/security/sandbox/linux/SandboxFilter.cpp +@@ -572,6 +572,8 @@ + case __NR_set_tid_address: + return Allow(); + #endif ++ case __NR_membarrier: ++ return Allow(); + + // prctl + case __NR_prctl: { + +--- a/security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h ++++ b/security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h +@@ -1385,6 +1385,10 @@ + #define __NR_memfd_create (__NR_SYSCALL_BASE+385) + #endif + ++#if !defined(__NR_membarrier) ++#define __NR_membarrier (__NR_SYSCALL_BASE+389) ++#endif ++ + // ARM private syscalls. + #if !defined(__ARM_NR_BASE) + #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0xF0000) + +--- a/security/sandbox/chromium/sandbox/linux/system_headers/x86_64_linux_syscalls.h ++++ b/security/sandbox/chromium/sandbox/linux/system_headers/x86_64_linux_syscalls.h +@@ -1290,5 +1290,9 @@ + #define __NR_memfd_create 319 + #endif + ++#if !defined(__NR_membarrier) ++#define __NR_membarrier 324 ++#endif ++ + #endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_64_LINUX_SYSCALLS_H_ + +--- a/security/sandbox/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h ++++ b/security/sandbox/chromium/sandbox/linux/system_headers/x86_32_linux_syscalls.h +@@ -1490,5 +1490,9 @@ + #define __NR_shutdown 373 + #endif + ++#if !defined(__NR_membarrier) ++#define __NR_membarrier 375 ++#endif ++ + #endif // SANDBOX_LINUX_SYSTEM_HEADERS_X86_32_LINUX_SYSCALLS_H_ + diff --git a/extra/firefox/patches/fix-seccomp-bpf.patch b/extra/firefox/patches/fix-seccomp-bpf.patch new file mode 100644 index 00000000..da102b46 --- /dev/null +++ b/extra/firefox/patches/fix-seccomp-bpf.patch @@ -0,0 +1,14 @@ +--- a/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc ++++ b/security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc +@@ -25,6 +25,11 @@ + #include "sandbox/linux/system_headers/linux_seccomp.h" + #include "sandbox/linux/system_headers/linux_signal.h" + ++// musl libc defines siginfo_t __si_fields instead of _sifields ++#if defined(OS_LINUX) && !defined(__GLIBC__) ++#define _sifields __si_fields ++#endif ++ + namespace { + + struct arch_sigsys { diff --git a/extra/firefox/patches/fix-toolkit.patch b/extra/firefox/patches/fix-toolkit.patch new file mode 100644 index 00000000..414734df --- /dev/null +++ b/extra/firefox/patches/fix-toolkit.patch @@ -0,0 +1,90 @@ +diff --git a/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc b/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc +index 4222ce3..4d40c6a 100644 +--- a/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc ++++ b/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc +@@ -46,6 +46,7 @@ + #include <sys/mman.h> + #include <sys/stat.h> + #include <unistd.h> ++#include <libgen.h> + + #include <iostream> + #include <set> +diff --git a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc +index 6019fc7..5953e32 100644 +--- a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc ++++ b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc +@@ -41,6 +41,10 @@ + + #include "common/using_std_string.h" + ++#ifndef N_UNDF ++#define N_UNDF 0 ++#endif ++ + using std::vector; + + namespace google_breakpad { +diff --git a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h +index 98ee2dd..d57aa68 100644 +--- a/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h ++++ b/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h +@@ -55,7 +55,7 @@ + + #ifdef HAVE_MACH_O_NLIST_H + #include <mach-o/nlist.h> +-#elif defined(HAVE_A_OUT_H) ++#elif 0 + #include <a.out.h> + #endif + +diff --git a/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h b/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h +index 93fdad7..f34e5e0 100644 +--- a/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h ++++ b/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h +@@ -1239,6 +1239,12 @@ struct kernel_statfs { + #ifndef __NR_fallocate + #define __NR_fallocate 285 + #endif ++ ++#undef __NR_pread ++#define __NR_pread __NR_pread64 ++#undef __NR_pwrite ++#define __NR_pwrite __NR_pwrite64 ++ + /* End of x86-64 definitions */ + #elif defined(__mips__) + #if _MIPS_SIM == _MIPS_SIM_ABI32 +diff --git a/toolkit/mozapps/update/common/updatedefines.h b/toolkit/mozapps/update/common/updatedefines.h +index 79276f7..4c67976 100644 +--- a/toolkit/mozapps/update/common/updatedefines.h ++++ b/toolkit/mozapps/update/common/updatedefines.h +@@ -87,7 +87,7 @@ static inline int mywcsprintf(WCHAR* dest, size_t count, const WCHAR* fmt, + + # ifdef SOLARIS + # include <sys/stat.h> +-# else ++# elif !defined(__linux__) || defined(__GLIBC__) + # include <fts.h> + # endif + # include <dirent.h> +diff --git a/toolkit/mozapps/update/updater/updater.cpp b/toolkit/mozapps/update/updater/updater.cpp +index 257ccb4..01314e4 100644 +--- a/toolkit/mozapps/update/updater/updater.cpp ++++ b/toolkit/mozapps/update/updater/updater.cpp +@@ -3978,6 +3978,7 @@ + + int add_dir_entries(const NS_tchar* dirpath, ActionList* list) { + int rv = OK; ++#if !defined(__linux__) || defined(__GLIBC__) + FTS* ftsdir; + FTSENT* ftsdirEntry; + mozilla::UniquePtr<NS_tchar[]> searchpath(get_full_path(dirpath)); +@@ -4085,6 +4086,7 @@ + } + + fts_close(ftsdir); ++#endif + + return rv; + } diff --git a/extra/firefox/patches/fix-tools.patch b/extra/firefox/patches/fix-tools.patch new file mode 100644 index 00000000..93b9d19c --- /dev/null +++ b/extra/firefox/patches/fix-tools.patch @@ -0,0 +1,37 @@ +diff --git a/tools/profiler/core/platform-linux-android.cpp b/tools/profiler/core/platform-linux-android.cpp +index 19d0a5c56d..b64b543066 100644 +--- a/tools/profiler/core/platform-linux-android.cpp ++++ b/tools/profiler/core/platform-linux-android.cpp +@@ -506,8 +506,10 @@ static void PlatformInit(PSLockRef aLock) {} + ucontext_t sSyncUContext; + + void Registers::SyncPopulate() { +- if (!getcontext(&sSyncUContext)) { +- PopulateRegsFromContext(*this, &sSyncUContext); +- } ++ #if defined(__GLIBC__) ++ if (!getcontext(&sSyncUContext)) { ++ PopulateRegsFromContext(*this, &sSyncUContext); ++ } ++ #endif + } + #endif +diff --git a/tools/profiler/lul/LulElf.cpp b/tools/profiler/lul/LulElf.cpp +index 9998d04d0d..348a7086fc 100644 +--- a/tools/profiler/lul/LulElf.cpp ++++ b/tools/profiler/lul/LulElf.cpp +@@ -469,10 +469,10 @@ string FormatIdentifier(unsigned char identifier[16]) { + // Return the non-directory portion of FILENAME: the portion after the + // last slash, or the whole filename if there are no slashes. + string BaseFileName(const string& filename) { +- // Lots of copies! basename's behavior is less than ideal. +- char* c_filename = strdup(filename.c_str()); +- string base = basename(c_filename); +- free(c_filename); ++ // basename's behavior is less than ideal so avoid it ++ const char *c_filename = filename.c_str(); ++ const char *p = strrchr(c_filename, '/'); ++ string base = p ? p+1 : c_filename; + return base; + } + diff --git a/extra/firefox/patches/fix-webrtc-glibcisms.patch b/extra/firefox/patches/fix-webrtc-glibcisms.patch new file mode 100644 index 00000000..658b076d --- /dev/null +++ b/extra/firefox/patches/fix-webrtc-glibcisms.patch @@ -0,0 +1,20 @@ +--- ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c.orig 2018-05-09 23:48:44.677389171 +0200 ++++ ./media/webrtc/trunk/webrtc/system_wrappers/source/cpu_features_linux.c 2018-05-09 23:48:56.254373557 +0200 +@@ -14,7 +14,7 @@ + #ifndef __GLIBC_PREREQ + #define __GLIBC_PREREQ(a, b) 0 + #endif +-#if __GLIBC_PREREQ(2, 16) ++#if !__GLIBC__ || __GLIBC_PREREQ(2, 16) + #include <sys/auxv.h> + #else + #include <fcntl.h> +@@ -32,7 +32,7 @@ + int architecture = 0; + unsigned long hwcap = 0; + const char* platform = NULL; +-#if __GLIBC_PREREQ(2, 16) ++#if !__GLIBC__ || __GLIBC_PREREQ(2, 16) + hwcap = getauxval(AT_HWCAP); + platform = (const char*)getauxval(AT_PLATFORM); + #else diff --git a/extra/firefox/patches/mallinfo.patch b/extra/firefox/patches/mallinfo.patch new file mode 100644 index 00000000..0649413c --- /dev/null +++ b/extra/firefox/patches/mallinfo.patch @@ -0,0 +1,34 @@ +--- a/xpcom/base/nsMemoryReporterManager.cpp.orig 2019-03-19 17:12:20.844810044 +0100 ++++ b/xpcom/base/nsMemoryReporterManager.cpp 2019-03-19 17:13:32.505133615 +0100 +@@ -123,6 +123,7 @@ + return GetProcSelfSmapsPrivate(aN); + } + ++#ifdef __GLIBC__ + # ifdef HAVE_MALLINFO + # define HAVE_SYSTEM_HEAP_REPORTER 1 + static MOZ_MUST_USE nsresult SystemHeapSize(int64_t* aSizeOut) { +@@ -142,6 +143,7 @@ + return NS_OK; + } + # endif ++#endif // __GLIBC__ + + #elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || \ + defined(__OpenBSD__) || defined(__FreeBSD_kernel__) +@@ -642,6 +644,7 @@ + return NS_OK; + } + ++#ifdef __GLIBC__ + # define HAVE_SYSTEM_HEAP_REPORTER 1 + // Windows can have multiple separate heaps. During testing there were multiple + // heaps present but the non-default ones had sizes no more than a few 10s of +@@ -698,6 +701,7 @@ + *aSizeOut = heapsSize; + return NS_OK; + } ++#endif // __GLIBC__ + + struct SegmentKind { + DWORD mState; diff --git a/extra/firefox/sources b/extra/firefox/sources new file mode 100644 index 00000000..99c2a787 --- /dev/null +++ b/extra/firefox/sources @@ -0,0 +1,15 @@ +https://archive.mozilla.org/pub/firefox/candidates/71.0-candidates/build2/source/firefox-71.0.source.tar.xz +https://ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gz autoconf2.13/ +files/mozconfig +files/stab.h toolkit/crashreporter/google-breakpad/src/ +files/vendor.js +files/policies.json +patches/fix-fortify-system-wrappers.patch +patches/fix-sandbox-membarrier.patch +patches/fix-seccomp-bpf.patch +patches/fix-toolkit.patch +patches/fix-tools.patch +patches/fix-webrtc-glibcisms.patch +patches/mallinfo.patch +patches/firefox-71-no-dbus.patch +patches/firefox-71-no-accessibility.patch diff --git a/extra/firefox/version b/extra/firefox/version new file mode 100644 index 00000000..4f95e8e6 --- /dev/null +++ b/extra/firefox/version @@ -0,0 +1 @@ +71.0 1 |