From d8a11ba03a032109bb30f5957f702b4cc39a0469 Mon Sep 17 00:00:00 2001 From: "aospdeveloper.exeis" Date: Thu, 27 Dec 2018 20:36:07 -0600 Subject: [PATCH] Uploaded build for Firefox 61.0.2 --- build-scripts/firefox-61.0.2.build | 30 ++++-- files/firefox-61.0.2-mozconfig | 39 ++++++++ files/firefox-61.0.2-stab.h | 71 ++++++++++++++ .../firefox-61.0.2-fix-fortify-inline.patch | 11 +++ patches/firefox-61.0.2-fix-musl.patch | 11 +++ patches/firefox-61.0.2-fix-seccomp-bpf.patch | 14 +++ patches/firefox-61.0.2-fix-toolkit.patch | 79 +++++++++++++++ patches/firefox-61.0.2-fix-tools.patch | 42 ++++++++ .../firefox-61.0.2-fix-webrtc-glibcisms.patch | 13 +++ patches/firefox-61.0.2-fix-xpcom.patch | 11 +++ patches/firefox-61.0.2-mallinfo.patch | 18 ++++ ...irefox-61.0.2-rust-unitialized-field.patch | 19 ++++ patches/firefox-61.0.2-sndio.patch | 97 +++++++++++++++++++ 13 files changed, 449 insertions(+), 6 deletions(-) create mode 100755 files/firefox-61.0.2-mozconfig create mode 100755 files/firefox-61.0.2-stab.h create mode 100755 patches/firefox-61.0.2-fix-fortify-inline.patch create mode 100755 patches/firefox-61.0.2-fix-musl.patch create mode 100755 patches/firefox-61.0.2-fix-seccomp-bpf.patch create mode 100755 patches/firefox-61.0.2-fix-toolkit.patch create mode 100755 patches/firefox-61.0.2-fix-tools.patch create mode 100755 patches/firefox-61.0.2-fix-webrtc-glibcisms.patch create mode 100755 patches/firefox-61.0.2-fix-xpcom.patch create mode 100755 patches/firefox-61.0.2-mallinfo.patch create mode 100755 patches/firefox-61.0.2-rust-unitialized-field.patch create mode 100755 patches/firefox-61.0.2-sndio.patch diff --git a/build-scripts/firefox-61.0.2.build b/build-scripts/firefox-61.0.2.build index fe5c543..c1d6c2a 100755 --- a/build-scripts/firefox-61.0.2.build +++ b/build-scripts/firefox-61.0.2.build @@ -1,5 +1,8 @@ #! /bin/bash +# Firefox 61.0.2 for x86_64-linux-musl +# Required Rustc + patch -Np0 -i ../firefox-61.0.2-fix-fortify-inline.patch patch -Np0 -i ../firefox-61.0.2-fix-musl.patch patch -Np0 -i ../firefox-61.0.2-fix-seccomp-bpf.patch @@ -10,22 +13,37 @@ patch -Np0 -i ../firefox-61.0.2-fix-xpcom.patch patch -Np0 -i ../firefox-61.0.2-mallinfo.patch patch -Np0 -i ../firefox-61.0.2-rust-unitialized-field.patch patch -Np0 -i ../firefox-61.0.2-sndio.patch + cp -v ../firefox-61.0.2-stab.h toolkit/crashreporter/google-breakpad/src/stab.h -echo -n "AIzaSyAdkx9XyYrApn72ZXAb7je2ONLqQdPhHZ4" > google-api-key -echo -n "cd894504-7a2a-4263-abff-ff73ee89ffca" > mozilla-api-key + +# Please add your own Google and Mozilla API keys: +#echo -n "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" > google-api-key +#echo -n "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" > mozilla-api-key + cp -v ../firefox-61.0.2-mozconfig ./.mozconfig + echo "ac_add_options --disable-jemalloc" >> .mozconfig echo "ac_add_options --disable-gold" >> .mozconfig echo "ac_add_options --enable-release" >> .mozconfig echo "ac_add_options --host=x86_64-linux-musl" >> .mozconfig echo "ac_add_options --target=x86_64-linux-musl" >> .mozconfig -export LDFLAGS=" -Wl,-rpath=/opt/xorg/lib -Wl,-rpath=/usr/lib/firefox" -export MOZ_MAKE_FLAGS=2 + +# If commented, add /usr/lib/firefox to /etc/ld-musl-x86_64.path +# export LDFLAGS=" -Wl,-rpath=/usr/lib/firefox" + +# Set the number of jobs... just like -j3 for "make -j3" +export MOZ_MAKE_FLAGS=3 + cat >> .mozconfig << "EOF" ac_add_options --with-google-api-keyfile="$PWD/google-api-key" ac_add_options --with-mozilla-api-keyfile="$PWD/mozilla-api-key" ac_add_options --enable-startup-notification EOF + rm -fv old-configure -#./mach build -#./install + +# Build +./mach build + +# Istall +porg -lD "./mach install" diff --git a/files/firefox-61.0.2-mozconfig b/files/firefox-61.0.2-mozconfig new file mode 100755 index 0000000..991957c --- /dev/null +++ b/files/firefox-61.0.2-mozconfig @@ -0,0 +1,39 @@ +ac_add_options --prefix=/usr +ac_add_options --libdir=/usr/lib + +ac_add_options --with-pthreads +ac_add_options --with-system-nspr +ac_add_options --with-system-nss +ac_add_options --with-system-bz2 +ac_add_options --with-system-jpeg +ac_add_options --with-system-zlib +ac_add_options --with-system-libevent +ac_add_options --with-system-libvpx +ac_add_options --with-system-icu +ac_add_options --enable-system-pixman +ac_add_options --enable-system-sqlite +ac_add_options --enable-system-ffi + +ac_add_options --with-nspr-prefix=/usr +ac_add_options --with-nss-prefix=/usr + +nspr_config_args=" + --libdir=/usr/lib + --includedir=/usr/include/nspr" + +nss_config_args=" + --libdir=/usr/lib + --includedir=/usr/include/nss" + +ac_add_options --disable-gconf +ac_add_options --disable-tests +ac_add_options --disable-crashreporter +ac_add_options --disable-updater +ac_add_options --disable-elf-hack +ac_add_options --disable-install-strip +ac_add_options --disable-strip +ac_add_options --disable-profiling +ac_add_options --enable-pie + +ac_add_options --enable-official-branding +ac_add_options --enable-application=browser diff --git a/files/firefox-61.0.2-stab.h b/files/firefox-61.0.2-stab.h new file mode 100755 index 0000000..6f70af3 --- /dev/null +++ b/files/firefox-61.0.2-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/patches/firefox-61.0.2-fix-fortify-inline.patch b/patches/firefox-61.0.2-fix-fortify-inline.patch new file mode 100755 index 0000000..c119019 --- /dev/null +++ b/patches/firefox-61.0.2-fix-fortify-inline.patch @@ -0,0 +1,11 @@ +--- media/webrtc/signaling/src/sdp/sipcc/sdp_os_defs.h ++++ media/webrtc/signaling/src/sdp/sipcc/sdp_os_defs.h +@@ -27,8 +27,5 @@ + typedef int16_t int16; + typedef unsigned short ushort; + typedef unsigned long ulong; +-#ifndef __GNUC_STDC_INLINE__ +-#define inline +-#endif + + #endif /* _SDP_OS_DEFS_H_ */ diff --git a/patches/firefox-61.0.2-fix-musl.patch b/patches/firefox-61.0.2-fix-musl.patch new file mode 100755 index 0000000..c32921d --- /dev/null +++ b/patches/firefox-61.0.2-fix-musl.patch @@ -0,0 +1,11 @@ +--- tools/profiler/core/platform.h.orig ++++ tools/profiler/core/platform.h +@@ -56,7 +56,7 @@ + + // We need a definition of gettid(), but glibc doesn't provide a + // wrapper for it. +-#if defined(__GLIBC__) ++#if defined(__linux__) + #include + #include + static inline pid_t gettid() diff --git a/patches/firefox-61.0.2-fix-seccomp-bpf.patch b/patches/firefox-61.0.2-fix-seccomp-bpf.patch new file mode 100755 index 0000000..ed94fc3 --- /dev/null +++ b/patches/firefox-61.0.2-fix-seccomp-bpf.patch @@ -0,0 +1,14 @@ +--- security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc.orig 2015-09-23 09:10:08.812740571 +0200 ++++ security/sandbox/chromium/sandbox/linux/seccomp-bpf/trap.cc 2015-09-23 09:11:38.404746155 +0200 +@@ -23,6 +23,11 @@ + #include "sandbox/linux/services/android_ucontext.h" + #endif + ++// 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/patches/firefox-61.0.2-fix-toolkit.patch b/patches/firefox-61.0.2-fix-toolkit.patch new file mode 100755 index 0000000..7d79879 --- /dev/null +++ b/patches/firefox-61.0.2-fix-toolkit.patch @@ -0,0 +1,79 @@ +--- toolkit.orig/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h.orig 2016-07-05 21:00:03.672000517 +0200 ++++ toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h 2016-07-05 21:05:37.347806230 +0200 +@@ -1134,6 +1134,12 @@ + #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 +--- toolkit.orig/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc 2014-03-15 05:19:36.000000000 +0000 ++++ toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc 2014-04-17 10:24:33.793431933 +0000 +@@ -45,6 +45,7 @@ + #include + #include + #include ++#include + + #include + #include +--- toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.cc 2014-03-15 05:19:36.000000000 +0000 ++++ toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc 2014-04-17 10:24:33.793431933 +0000 +@@ -41,6 +41,10 @@ + + #include "common/using_std_string.h" + ++#ifndef N_UNDF ++#define N_UNDF 0 ++#endif ++ + using std::vector; + + namespace google_breakpad { +--- toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.h 2014-03-15 05:19:36.000000000 +0000 ++++ toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h 2014-04-17 10:24:33.793431933 +0000 +@@ -55,7 +55,7 @@ + + #ifdef HAVE_MACH_O_NLIST_H + #include +-#elif defined(HAVE_A_OUT_H) ++#elif 0 + #include + #endif + + +--- toolkit.orig/mozapps/update/common/updatedefines.h 2014-03-15 05:19:37.000000000 +0000 ++++ toolkit/mozapps/update/common/updatedefines.h 2014-04-17 10:24:33.793431933 +0000 +@@ -105,7 +105,7 @@ + + #ifdef SOLARIS + # include +-#else ++#elif !defined(__linux__) || defined(__GLIBC__) + # include + #endif + # include +--- toolkit.orig/mozapps/update/updater/updater.cpp 2014-03-15 05:19:37.000000000 +0000 ++++ toolkit/mozapps/update/updater/updater.cpp 2014-04-17 10:24:33.796765327 +0000 +@@ -3432,6 +3432,7 @@ + int add_dir_entries(const NS_tchar *dirpath, ActionList *list) + { + int rv = OK; ++#if !defined(__linux__) || defined(__GLIBC__) + FTS *ftsdir; + FTSENT *ftsdirEntry; + NS_tchar searchpath[MAXPATHLEN]; +@@ -3534,6 +3535,7 @@ + } + + fts_close(ftsdir); ++#endif + + return rv; + } diff --git a/patches/firefox-61.0.2-fix-tools.patch b/patches/firefox-61.0.2-fix-tools.patch new file mode 100755 index 0000000..d5a94cb --- /dev/null +++ b/patches/firefox-61.0.2-fix-tools.patch @@ -0,0 +1,42 @@ +--- tools/profiler/core/platform.h ++++ tools/profiler/core/platform.h +@@ -29,6 +29,8 @@ + #ifndef TOOLS_PLATFORM_H_ + #define TOOLS_PLATFORM_H_ + ++#include ++ + #include + #include + #include "MainThreadUtils.h" +--- tools/profiler/lul/LulElf.cpp ++++ tools/profiler/lul/LulElf.cpp +@@ -579,10 +579,10 @@ + // 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; + } + +--- tools/profiler/core/platform-linux-android.cpp.orig ++++ tools/profiler/core/platform-linux-android.cpp +@@ -534,9 +534,11 @@ + void + Registers::SyncPopulate() + { ++#if defined(__GLIBC__) + if (!getcontext(&sSyncUContext)) { + PopulateRegsFromContext(*this, &sSyncUContext); + } ++#endif + } + #endif + diff --git a/patches/firefox-61.0.2-fix-webrtc-glibcisms.patch b/patches/firefox-61.0.2-fix-webrtc-glibcisms.patch new file mode 100755 index 0000000..0a93044 --- /dev/null +++ b/patches/firefox-61.0.2-fix-webrtc-glibcisms.patch @@ -0,0 +1,13 @@ +--- 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 +@@ -11,7 +11,9 @@ + #include + #include + #include +-#if __GLIBC_PREREQ(2, 16) ++#if !__GLIBC__ ++#include ++#elif __GLIBC_PREREQ(2, 16) + #include + #else + #include diff --git a/patches/firefox-61.0.2-fix-xpcom.patch b/patches/firefox-61.0.2-fix-xpcom.patch new file mode 100755 index 0000000..38dd582 --- /dev/null +++ b/patches/firefox-61.0.2-fix-xpcom.patch @@ -0,0 +1,11 @@ +--- xpcom/base/nsMemoryReporterManager.cpp.orig 2015-12-16 11:53:14.211144456 +0100 ++++ xpcom/base/nsMemoryReporterManager.cpp 2015-12-16 11:55:26.859476381 +0100 +@@ -46,7 +46,7 @@ using namespace mozilla; + # include "mozmemory.h" + #endif // MOZ_MEMORY + +-#if defined(XP_LINUX) ++#if defined(XP_LINUX) && defined(__GLIBC__) + + #include + #include diff --git a/patches/firefox-61.0.2-mallinfo.patch b/patches/firefox-61.0.2-mallinfo.patch new file mode 100755 index 0000000..c9a38d4 --- /dev/null +++ b/patches/firefox-61.0.2-mallinfo.patch @@ -0,0 +1,18 @@ +--- xpcom/base/nsMemoryReporterManager.cpp ++++ xpcom/base/nsMemoryReporterManager.cpp +@@ -153,6 +153,7 @@ ResidentUniqueDistinguishedAmount(int64_t* aN) + return GetProcSelfSmapsPrivate(aN); + } + ++#ifdef __GLIBC__ + #define HAVE_SYSTEM_HEAP_REPORTER 1 + nsresult + SystemHeapSize(int64_t* aSizeOut) +@@ -172,6 +173,7 @@ SystemHeapSize(int64_t* aSizeOut) + *aSizeOut = size_t(info.hblkhd) + size_t(info.uordblks); + return NS_OK; + } ++#endif + + #elif defined(__DragonFly__) || defined(__FreeBSD__) \ + || defined(__NetBSD__) || defined(__OpenBSD__) \ diff --git a/patches/firefox-61.0.2-rust-unitialized-field.patch b/patches/firefox-61.0.2-rust-unitialized-field.patch new file mode 100755 index 0000000..67ef3a0 --- /dev/null +++ b/patches/firefox-61.0.2-rust-unitialized-field.patch @@ -0,0 +1,19 @@ +--- ./media/audioipc/audioipc/src/cmsg.rs.orig 2018-05-09 22:19:14.748631939 +0200 ++++ ./media/audioipc/audioipc/src/cmsg.rs 2018-05-09 22:19:22.961620862 +0200 +@@ -106,11 +106,11 @@ impl ControlMsgBuilder { + return Err(Error::NoSpace); + } + +- let cmsghdr = cmsghdr { +- cmsg_len: cmsg_len as _, +- cmsg_level: level, +- cmsg_type: kind, +- }; ++ use std::mem; ++ let mut cmsghdr: cmsghdr = unsafe { mem::zeroed() }; ++ cmsghdr.cmsg_len = cmsg_len as _; ++ cmsghdr.cmsg_level = level; ++ cmsghdr.cmsg_type = kind; + + let cmsghdr = unsafe { + slice::from_raw_parts(&cmsghdr as *const _ as *const _, mem::size_of::()) diff --git a/patches/firefox-61.0.2-sndio.patch b/patches/firefox-61.0.2-sndio.patch new file mode 100755 index 0000000..b885aa3 --- /dev/null +++ b/patches/firefox-61.0.2-sndio.patch @@ -0,0 +1,97 @@ +--- old-configure.in.orig ++++ old-configure.in +@@ -2839,6 +2839,22 @@ + + AC_SUBST(MOZ_ALSA) + ++dnl ================================== ++dnl = Check sndio availability ++dnl ================================== ++ ++MOZ_ARG_ENABLE_BOOL(sndio, ++[ --enable-sndio Enable sndio support], ++ MOZ_SNDIO=1, ++ MOZ_SNDIO=) ++ ++if test -n "$MOZ_SNDIO"; then ++ MOZ_SNDIO_LIBS="-lsndio" ++ AC_SUBST_LIST(MOZ_SNDIO_LIBS) ++fi ++ ++AC_SUBST(MOZ_SNDIO) ++ + dnl ======================================================== + dnl = Disable PulseAudio + dnl ======================================================== +--- toolkit/library/moz.build.orig ++++ toolkit/library/moz.build +@@ -235,10 +235,8 @@ + if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('cocoa', 'uikit'): + OS_LIBS += CONFIG['TK_LIBS'] + +-if CONFIG['OS_ARCH'] == 'OpenBSD': +- OS_LIBS += [ +- 'sndio', +- ] ++if CONFIG['MOZ_SNDIO']: ++ OS_LIBS += CONFIG['MOZ_SNDIO_LIBS'] + + if CONFIG['MOZ_ENABLE_DBUS']: + OS_LIBS += CONFIG['MOZ_DBUS_GLIB_LIBS'] +--- media/libcubeb/src/moz.build.orig ++++ media/libcubeb/src/moz.build +@@ -43,7 +43,7 @@ + ] + DEFINES['USE_JACK'] = True + +-if CONFIG['OS_ARCH'] == 'OpenBSD': ++if CONFIG['MOZ_SNDIO']: + SOURCES += [ + 'cubeb_sndio.c', + ] +--- build/moz.configure/old.configure.orig ++++ build/moz.configure/old.configure +@@ -159,6 +159,7 @@ + '--cache-file', + '--datadir', + '--enable-accessibility', ++ '--enable-sndio', + '--enable-bundled-fonts', + '--enable-content-sandbox', + '--enable-cookies', +--- security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp.orig ++++ security/sandbox/linux/broker/SandboxBrokerPolicyFactory.cpp +@@ -349,6 +349,21 @@ + } + } + } ++ ++#ifdef MOZ_SNDIO ++ // ~/.aucat_cookie (sndio) ++ rv = homeDir->Clone(getter_AddRefs(confDir)); ++ if (NS_SUCCEEDED(rv)) { ++ rv = confDir->AppendNative(NS_LITERAL_CSTRING(".aucat_cookie")); ++ if (NS_SUCCEEDED(rv)) { ++ nsAutoCString tmpPath; ++ rv = confDir->GetNativePath(tmpPath); ++ if (NS_SUCCEEDED(rv)) { ++ policy->AddPath(rdwrcr, tmpPath.get()); ++ } ++ } ++ } ++#endif + } + + // Firefox binary dir. +--- security/sandbox/linux/moz.build.orig ++++ security/sandbox/linux/moz.build +@@ -81,6 +81,9 @@ + if CONFIG['MOZ_ALSA']: + DEFINES['MOZ_ALSA'] = True + ++if CONFIG['MOZ_SNDIO']: ++ DEFINES['MOZ_SNDIO'] = True ++ + # This copy of SafeSPrintf doesn't need to avoid the Chromium logging + # dependency like the one in libxul does, but this way the behavior is + # consistent. See also the comment in SandboxLogging.h.