From 4c9e27a54c4f400e46645cb768b7743d2e29f9b1 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Thu, 31 Mar 2016 09:32:21 +0000 Subject: community/firefox-esr: renamed from firefox --- .../firefox-esr/0002-Use-C99-math-isfinite.patch | 17 + .../firefox-esr/0003-xulrunner-jemalloc-aslr.patch | 67 ++++ community/firefox-esr/APKBUILD | 223 ++++++++++++++ community/firefox-esr/firefox-safe.desktop | 11 + community/firefox-esr/firefox.desktop | 81 +++++ community/firefox-esr/fix-arm-atomics-grsec.patch | 342 +++++++++++++++++++++ community/firefox-esr/fix-fortify-inline.patch | 11 + .../firefox-esr/fix-fortify-system-wrappers.patch | 13 + community/firefox-esr/fix-ipc.patch | 55 ++++ community/firefox-esr/fix-linux-include.patch | 10 + community/firefox-esr/fix-media.patch | 10 + community/firefox-esr/fix-netwerk.patch | 37 +++ community/firefox-esr/fix-toolkit.patch | 151 +++++++++ community/firefox-esr/fix-tools.patch | 49 +++ community/firefox-esr/getchar.patch | 14 + community/firefox-esr/mozconfig | 54 ++++ community/firefox-esr/mozilla-build-arm.patch | 11 + community/firefox-esr/rhbz-966424.patch | 14 + community/firefox-esr/stab.h | 71 +++++ community/firefox-esr/stat.patch | 25 ++ community/firefox-esr/vendor.js | 3 + community/firefox/0002-Use-C99-math-isfinite.patch | 17 - .../firefox/0003-xulrunner-jemalloc-aslr.patch | 67 ---- community/firefox/APKBUILD | 223 -------------- community/firefox/firefox-safe.desktop | 11 - community/firefox/firefox.desktop | 81 ----- community/firefox/fix-arm-atomics-grsec.patch | 342 --------------------- community/firefox/fix-fortify-inline.patch | 11 - .../firefox/fix-fortify-system-wrappers.patch | 13 - community/firefox/fix-ipc.patch | 55 ---- community/firefox/fix-linux-include.patch | 10 - community/firefox/fix-media.patch | 10 - community/firefox/fix-netwerk.patch | 37 --- community/firefox/fix-toolkit.patch | 151 --------- community/firefox/fix-tools.patch | 49 --- community/firefox/getchar.patch | 14 - community/firefox/mozconfig | 54 ---- community/firefox/mozilla-build-arm.patch | 11 - community/firefox/rhbz-966424.patch | 14 - community/firefox/stab.h | 71 ----- community/firefox/stat.patch | 25 -- community/firefox/vendor.js | 3 - 42 files changed, 1269 insertions(+), 1269 deletions(-) create mode 100644 community/firefox-esr/0002-Use-C99-math-isfinite.patch create mode 100644 community/firefox-esr/0003-xulrunner-jemalloc-aslr.patch create mode 100644 community/firefox-esr/APKBUILD create mode 100644 community/firefox-esr/firefox-safe.desktop create mode 100644 community/firefox-esr/firefox.desktop create mode 100644 community/firefox-esr/fix-arm-atomics-grsec.patch create mode 100644 community/firefox-esr/fix-fortify-inline.patch create mode 100644 community/firefox-esr/fix-fortify-system-wrappers.patch create mode 100644 community/firefox-esr/fix-ipc.patch create mode 100644 community/firefox-esr/fix-linux-include.patch create mode 100644 community/firefox-esr/fix-media.patch create mode 100644 community/firefox-esr/fix-netwerk.patch create mode 100644 community/firefox-esr/fix-toolkit.patch create mode 100644 community/firefox-esr/fix-tools.patch create mode 100644 community/firefox-esr/getchar.patch create mode 100644 community/firefox-esr/mozconfig create mode 100644 community/firefox-esr/mozilla-build-arm.patch create mode 100644 community/firefox-esr/rhbz-966424.patch create mode 100644 community/firefox-esr/stab.h create mode 100644 community/firefox-esr/stat.patch create mode 100644 community/firefox-esr/vendor.js delete mode 100644 community/firefox/0002-Use-C99-math-isfinite.patch delete mode 100644 community/firefox/0003-xulrunner-jemalloc-aslr.patch delete mode 100644 community/firefox/APKBUILD delete mode 100644 community/firefox/firefox-safe.desktop delete mode 100644 community/firefox/firefox.desktop delete mode 100644 community/firefox/fix-arm-atomics-grsec.patch delete mode 100644 community/firefox/fix-fortify-inline.patch delete mode 100644 community/firefox/fix-fortify-system-wrappers.patch delete mode 100644 community/firefox/fix-ipc.patch delete mode 100644 community/firefox/fix-linux-include.patch delete mode 100644 community/firefox/fix-media.patch delete mode 100644 community/firefox/fix-netwerk.patch delete mode 100644 community/firefox/fix-toolkit.patch delete mode 100644 community/firefox/fix-tools.patch delete mode 100644 community/firefox/getchar.patch delete mode 100644 community/firefox/mozconfig delete mode 100644 community/firefox/mozilla-build-arm.patch delete mode 100644 community/firefox/rhbz-966424.patch delete mode 100644 community/firefox/stab.h delete mode 100644 community/firefox/stat.patch delete mode 100644 community/firefox/vendor.js diff --git a/community/firefox-esr/0002-Use-C99-math-isfinite.patch b/community/firefox-esr/0002-Use-C99-math-isfinite.patch new file mode 100644 index 0000000000..ba4f5cfb3d --- /dev/null +++ b/community/firefox-esr/0002-Use-C99-math-isfinite.patch @@ -0,0 +1,17 @@ +--- ./xpcom/ds/nsMathUtils.h.orig ++++ ./xpcom/ds/nsMathUtils.h +@@ -104,12 +104,12 @@ + #ifdef WIN32 + // NOTE: '!!' casts an int to bool without spamming MSVC warning C4800. + return !!_finite(aNum); +-#elif defined(XP_DARWIN) ++#elif defined(XP_DARWIN) || defined(_GLIBCXX_CMATH) + // Darwin has deprecated |finite| and recommends |isfinite|. The former is + // not present in the iOS SDK. + return std::isfinite(aNum); + #else +- return finite(aNum); ++ return isfinite(aNum); + #endif + } + diff --git a/community/firefox-esr/0003-xulrunner-jemalloc-aslr.patch b/community/firefox-esr/0003-xulrunner-jemalloc-aslr.patch new file mode 100644 index 0000000000..7aa00009f0 --- /dev/null +++ b/community/firefox-esr/0003-xulrunner-jemalloc-aslr.patch @@ -0,0 +1,67 @@ +From 88bb9f90ec1e4b43fb78596c8ff7577c92592eb4 Mon Sep 17 00:00:00 2001 +From: Natanael Copa +Date: Fri, 25 Nov 2011 08:36:52 +0000 +Subject: [PATCH 3/4] xulrunner: jemalloc aslr + +--- + memory/jemalloc/jemalloc.c | 33 ++++++++++++++++++++++----------- + 1 files changed, 22 insertions(+), 11 deletions(-) + +diff --git a/memory/jemalloc/jemalloc.c b/memory/jemalloc/jemalloc.c +index ad7c450..91de92c 100644 +--- a/memory/mozjemalloc/jemalloc.c ++++ b/memory/mozjemalloc/jemalloc.c +@@ -410,7 +410,7 @@ void *_mmap(void *addr, size_t length, int prot, int flags, + static const bool __isthreaded = true; + #endif + +-#if defined(MOZ_MEMORY_SOLARIS) && defined(MAP_ALIGN) && !defined(JEMALLOC_NEVER_USES_MAP_ALIGN) ++#if defined(MOZ_MEMORY_SOLARIS) || defined(MOZ_MEMORY_LINUX) || defined(MOZ_MEMORY_BSD) + #define JEMALLOC_USES_MAP_ALIGN /* Required on Solaris 10. Might improve performance elsewhere. */ + #endif + +@@ -2181,20 +2181,31 @@ pages_map_align(size_t size, int pfd, size_t alignment) + * We don't use MAP_FIXED here, because it can cause the *replacement* + * of existing mappings, and we only want to create new mappings. + */ +-#ifdef MALLOC_PAGEFILE +- if (pfd != -1) { +- ret = mmap((void *)alignment, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | +- MAP_NOSYNC | MAP_ALIGN, pfd, 0); +- } else +-#endif +- { +- ret = mmap((void *)alignment, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | +- MAP_NOSYNC | MAP_ALIGN | MAP_ANON, -1, 0); +- } ++ ret = mmap(NULL, size + alignment, PROT_READ | PROT_WRITE, MAP_PRIVATE | ++ MAP_NOSYNC| MAP_ANON, -1, 0); + assert(ret != NULL); + + if (ret == MAP_FAILED) + ret = NULL; ++ else { ++ uintptr_t aligned_ret; ++ size_t extra_size; ++ ++ aligned_ret = (uintptr_t)ret + alignment - 1; ++ aligned_ret &= ~(alignment - 1); ++ extra_size = aligned_ret - (uintptr_t)ret; ++ munmap(ret, extra_size); ++ munmap(ret + extra_size + size, alignment - extra_size); ++ ret = (void *)aligned_ret; ++#ifdef MALLOC_PAGEFILE ++ if (pfd != -1) { ++ ret = mmap(ret, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | ++ MAP_NOSYNC | MAP_FIXED, pfd, 0); ++ } ++ if (ret == MAP_FAILED) ++ ret = NULL; ++#endif ++ } + return (ret); + } + #endif +-- +1.7.7.4 + diff --git a/community/firefox-esr/APKBUILD b/community/firefox-esr/APKBUILD new file mode 100644 index 0000000000..6725ce933e --- /dev/null +++ b/community/firefox-esr/APKBUILD @@ -0,0 +1,223 @@ +# Contributor: William Pitcock +# Maintainer: Natanael Copa +pkgname=firefox-esr +pkgver=38.7.0 +_pkgver=$pkgver +_xulver=$pkgver +pkgrel=0 +pkgdesc="Firefox web browser" +url="https://www.mozilla.org/en-US/firefox/organizations/faq/" +arch="all" +license="GPL LGPL MPL" +depends="" +depends_dev=" + alsa-lib-dev + bzip2-dev + dbus-glib-dev + gst-plugins-base1-dev + gstreamer1-dev + gtk+2.0-dev + hunspell-dev + icu-dev + libevent-dev + libidl-dev + libjpeg-turbo-dev + libnotify-dev + libogg-dev + libtheora-dev + libvorbis-dev + libvpx-dev + libxt-dev + libxcomposite-dev + mesa-dev + nspr-dev + nss-dev + sqlite-dev + startup-notification-dev + wireless-tools-dev + " +makedepends="$depends_dev + autoconf + automake + bsd-compat-headers + libtool + paxmark + python + sed + yasm + zip + " + +install="" +subpackages="$pkgname-dev" +source="http://ftp.mozilla.org/pub/firefox/releases/${pkgver}esr/source/firefox-${pkgver}esr.source.tar.bz2 + mozconfig + vendor.js + + 0002-Use-C99-math-isfinite.patch + fix-arm-atomics-grsec.patch + fix-ipc.patch + fix-media.patch + fix-netwerk.patch + fix-toolkit.patch + fix-tools.patch + fix-linux-include.patch + mozilla-build-arm.patch + stab.h + + rhbz-966424.patch + fix-fortify-inline.patch + fix-fortify-system-wrappers.patch + + firefox.desktop + firefox-safe.desktop" + +_builddir="${srcdir}/mozilla-esr${pkgver%%.*}" +_mozappdir=/usr/lib/firefox-$pkgver +_mozappdirdev=/usr/lib/firefox-devel-$pkgver + +# help our shared-object scanner to find the libs +ldpath="$_mozappdir" + +prepare() { + local i + + cd "$_builddir" || return 1 + + for i in $source; do + case $i in + *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; + esac + done + cp "$srcdir"/stab.h toolkit/crashreporter/google-breakpad/src/ + + cp "${srcdir}/mozconfig" .mozconfig +} + +build() { + cd "$_builddir" + + # mozilla's buildsystem is on drugs + export CFLAGS="$(echo $CFLAGS | sed -e 's/-Wall//' -e 's/-fexceptions/-fno-exceptions/g')" + export CXXFLAGS="$CFLAGS" + export SHELL=/bin/sh + + # set rpath so linker finds the libs + export LDFLAGS="$LDFLAGS -Wl,-rpath,${_mozappdir}" + + make -f client.mk build \ + STRIP="/bin/true" \ + || return 1 +} + +package() { + cd "$_builddir" + + # only used for startupcache creation. + local paxflags="-msp" + paxmark "$paxflags" */dist/bin/xpcshell || return 1 + + make -j1 -f client.mk install \ + DESTDIR="$pkgdir" \ + MOZ_MAKE_FLAGS="$MAKEOPTS" \ + || return 1 + + install -m755 -d ${pkgdir}/usr/share/applications + install -m755 -d ${pkgdir}/usr/share/pixmaps + install -m644 "$_builddir"/browser/branding/official/default48.png \ + ${pkgdir}/usr/share/pixmaps/firefox.png || return 1 + install -m644 ${srcdir}/firefox.desktop ${pkgdir}/usr/share/applications/firefox.desktop + install -m644 ${srcdir}/firefox-safe.desktop ${pkgdir}/usr/share/applications/firefox-safe.desktop + + # firefox currently does not work with mprotect. disable it for now + local paxflags="-mp" + [ "$CARCH" = "x86" ] && paxflags="-msp" + + paxmark "$paxflags" "$pkgdir"/$_mozappdir/firefox || return 1 + paxmark "$paxflags" "$pkgdir"/$_mozappdir/plugin-container || return 1 + + # xulrunner stub launcher has changed to using a symlink overlay... + # go figure + ln -sf /usr/lib/xulrunner-${_xulver} ${pkgdir}/$_mozappdir/xulrunner + + # launcher as symlink is broken from firefox-7.0 + rm "$pkgdir"/usr/bin/firefox || return 1 + libgl=$(scanelf -qF '#F%S' /usr/lib/libGL.so) + cat > "$pkgdir"/usr/bin/firefox << __EOF__ +#!/bin/sh + +exec $_mozappdir/firefox "\$@" +__EOF__ + chmod 755 "$pkgdir"/usr/bin/firefox + + # install our vendor prefs + install -d "$pkgdir"/$_mozappdir/browser/defaults/preferences + cat "$srcdir"/vendor.js >> "$pkgdir"/$_mozappdir/browser/defaults/preferences/firefox-branding.js + + # remove copied, huge, libraries + rm -f "$pkgdir"/${_mozappdirdev}/sdk/lib/libmozjs.so + rm -f "$pkgdir"/${_mozappdirdev}/sdk/lib/libmozalloc.so + rm -f "$pkgdir"/${_mozappdirdev}/sdk/lib/libxul.so +} + +dev() { + mkdir -p "$subpkgdir"/${_mozappdirdev%/*} + mv "$pkgdir"/${_mozappdirdev} "$subpkgdir"/${_mozappdirdev%/*} \ + || return 1 + default_dev +} + +md5sums="f0d5c2adcff266ea15c94db6b9d26a26 firefox-38.7.0esr.source.tar.bz2 +1f4c60e662ed93784431bd06c5141719 mozconfig +1515663477ce427cbdc42f04d8d5ca4e vendor.js +6ab77b80c8c7d6fd07ab53c54561f4df 0002-Use-C99-math-isfinite.patch +b18bd948aae828e5c8f5f63e440c96d6 fix-arm-atomics-grsec.patch +0c453c2e058ac568e0148c02b1c09abd fix-ipc.patch +f8bc97333847f37597c0bac0dca64eb2 fix-media.patch +170b8e7f8cab21f0965f226c291a57f9 fix-netwerk.patch +296954be4c6d6bfcc24d0a46a2bd7d74 fix-toolkit.patch +2279c55a85013fc1c0d01427768edd4d fix-tools.patch +2f0b995b1313884b10e4a61c2ce2cd01 fix-linux-include.patch +308ba5b54116a035fe68d0d5c3974857 mozilla-build-arm.patch +4383d038b8d8411ea46f4a109197c19e stab.h +15ebeeeb6823c185f4fed98e9bf1b786 rhbz-966424.patch +f29e0036edc7b3a4158a82fa97bde500 fix-fortify-inline.patch +9aba3811121f113fe547947591802d2b fix-fortify-system-wrappers.patch +ba96924ece1d77453e462429037a2ce5 firefox.desktop +6f38a5899034b7786cb1f75ad42032b8 firefox-safe.desktop" +sha256sums="5312ad03ccff3ca233d207b6e8e433bddb893ab6acc5ca2dfc5b7c18bb0dc8c0 firefox-38.7.0esr.source.tar.bz2 +23c2b4535ce83c92ba978e15ce328c9f140def155d12523c00df30baf41b98dc mozconfig +d72ca759792cc8c88efc664d30087a139fed7fc3d7d058e4cd9ab287bb80ea46 vendor.js +080a55182b865471a86fa4b70a66ed9495f1e536f7fdc4060cb8c675b4749c6e 0002-Use-C99-math-isfinite.patch +ff7cb3c9c4712e0517a6f11e3bf08e9b0d13dbe6384930bdc7f55b1ceed039b5 fix-arm-atomics-grsec.patch +fa7d50f399b6fc1ec1c007cabadc5c0cb9e1daf92c7f6ad89f651b8ce268c765 fix-ipc.patch +c1d0fbcf5e8610df9adc66ea956753e7d495e8ed2d1c1e06d183f4680c85db97 fix-media.patch +4a2f8ff5e9b1359541eba8854098cee2caeb40ad9dbdc4b8fcf48b47ea8ca2d2 fix-netwerk.patch +666883189dba3f4c7ba6b5bc85026c85bcb84477c2d5ba00d6414ddd0f744368 fix-toolkit.patch +60ed0870119480994c6c455034c52dd21b8482b7617c3a0032e3b2abf4467e4d fix-tools.patch +a3a6291888819e0f10e3ca05b2979093b32c723c4bf67b19ea1ab14555085236 fix-linux-include.patch +6f5f5e4d2a17182b72b248e896450235ccdaf63252fdb89a8deb55da8adc9be3 mozilla-build-arm.patch +960d82bbfdc88c95f5cb4f2e1c1bf23dae7519b3b7203914d7b3ddbff1ba4c28 stab.h +a50d15a640f230a2c66e1eb2afd2bed4117605d0f1591dcfec1ca30f0bc2352f rhbz-966424.patch +ecf808ef1bc2920f6f7a4786fafb46c74e8a2c3bc628f28f10d6e8e1a265e609 fix-fortify-inline.patch +cd19195cb4c316ad9f7d377cd8581218c888863b1bc4d112c97f48a4425fb946 fix-fortify-system-wrappers.patch +b571c4a49884a3c98806246c9cc3e60c73d5a8f4aeb7f96217db0be1d6210eda firefox.desktop +4b6de45753856a890f4482055666e77f9b01bdfb7e0df08bafaa3a4d9937eed3 firefox-safe.desktop" +sha512sums="edb8cdb06d82a58c3dca216402a4df0afb21bcaf97cbf3ebc3857249b281283f099267284f025fb724f47eff9c3b7569f6ae000003332c47264ca254f73e65ca firefox-38.7.0esr.source.tar.bz2 +e14b4a646230f7a752ef864b0e6a074fdac74d6c4abde2c31656eb10ac6f002a5c664d257bf3f4bd22544f10103e38d5fae49f84fcaae402b81940e72bcfe0e5 mozconfig +93570f821e59af4d233fc4b1df85e1d145a5e041ad402fd72921987a5a2f5218538d7a13d59bbf0bda5e7df1d5281407674a3765625936340106d1185b15b5d8 vendor.js +7e123144bc2b1efed149dfb41b255c447d43ea93a63ebe114d01945e6a6d69edc2f2a3c36980a93279106c1842355851b8b6c1d96679ee6be7b9b30513e0b1a8 0002-Use-C99-math-isfinite.patch +4311464ae52b6d2e2b02c789c6d5fca9b3c211888a983aa609a62c2f2554516fea735ea90673387c69b38a30aa8453ed79faa44b5163df4293880d40df676b2d fix-arm-atomics-grsec.patch +6419b3ec12c775c8bbce2c5737e68bb6c93f5b6c69af65b4fbbc525de3e2022def61943ab713c278aff9a6c27c1df1e19fb94940a755a94f6b40fd0492fae228 fix-ipc.patch +f4d1b0814247cdfe1655a0f345def4f80bd66f37ae5b0edc2cd6b8358e39e9a1bcc0a4ed7d1c4074a1302fb027a2f8be549225c5f4f56caf2513c968ed05d666 fix-media.patch +8a896ee4d1465a844351cec84217de1a28b9f27bfc1e34cc71368664b5b8804bd66bdcadc78c78ee365abd1d0cafed1e6c568045c93cb78ac94e2818f503d58c fix-netwerk.patch +72459754016f254c58d56d9a8719897fa8da9cf969eaa498e1e755457942d3f0ac56e4abd3f6a66ef924c94aa034d0af18a1fb653926b2496f0c2615fdb24c5e fix-toolkit.patch +426b57ce698de3eecd1b52f2998974c4e0b5922584b09b554d436c61fee039d1f86345e746fee067801ebbf50815c4d19b96266a2ed72a35ae5c3edbdb57bba1 fix-tools.patch +2c3319fd625c5d183e310ce6a27ec35e91caafd2206b7b992a539924f9bdb001b0340f1f4451650d4d968134ad35ba1f955cacfff10cb58980f27c42c90d280d fix-linux-include.patch +e61664bc93eadce5016a06a4d0684b34a05074f1815e88ef2613380d7b369c6fd305fb34f83b5eb18b9e3138273ea8ddcfdcb1084fdcaa922a1e5b30146a3b18 mozilla-build-arm.patch +0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127 stab.h +06ededcd196af98b77991dcba3b710b0dfc061404adb4676fcc380be80410a2621f64d67257b0aefdf36f566e0ea1294b5405b7b4db43e83281a1c64d02da579 rhbz-966424.patch +09bc32cf9ee81b9cc6bb58ddbc66e6cc5c344badff8de3435cde5848e5a451e0172153231db85c2385ff05b5d9c20760cb18e4138dfc99060a9e960de2befbd5 fix-fortify-inline.patch +2a967e4619fd89a046bd40be7fdcef646fcb1eba5e47afc96aa1d59c25bcc8747cb07baee6c11f3b803db0981aced181534b806778e4d21e74958f5f4d74c784 fix-fortify-system-wrappers.patch +f3b7c3e804ce04731012a46cb9e9a6b0769e3772aef9c0a4a8c7520b030fdf6cd703d5e9ff49275f14b7d738fe82a0a4fde3bc3219dff7225d5db0e274987454 firefox.desktop +5dcb6288d0444a8a471d669bbaf61cdb1433663eff38b72ee5e980843f5fc07d0d60c91627a2c1159215d0ad77ae3f115dcc5fdfe87e64ca704b641aceaa44ed firefox-safe.desktop" diff --git a/community/firefox-esr/firefox-safe.desktop b/community/firefox-esr/firefox-safe.desktop new file mode 100644 index 0000000000..1538fc6748 --- /dev/null +++ b/community/firefox-esr/firefox-safe.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Exec=firefox -safe-mode %u +Icon=firefox +Type=Application +Terminal=false +MultipleArgs=false +Name=Firefox - Safe Mode +GenericName=Web Browser - Safe Mode +StartupNotify=false +Categories=Network;WebBrowser; diff --git a/community/firefox-esr/firefox.desktop b/community/firefox-esr/firefox.desktop new file mode 100644 index 0000000000..d048ce46c3 --- /dev/null +++ b/community/firefox-esr/firefox.desktop @@ -0,0 +1,81 @@ +[Desktop Entry] +Exec=firefox %u +Icon=firefox +Type=Application +Terminal=false +Name=Firefox +Name[bn]=ফায়ারফক্স3 +Name[eo]=Fajrovulpo3 +Name[fi]=Firefox3 +Name[pa]=ਫਾਇਰਫੋਕਸ3 +Name[tg]=Рӯбоҳи оташин3 +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; +StartupNotify=true +Categories=Network;WebBrowser; diff --git a/community/firefox-esr/fix-arm-atomics-grsec.patch b/community/firefox-esr/fix-arm-atomics-grsec.patch new file mode 100644 index 0000000000..5524b2aa73 --- /dev/null +++ b/community/firefox-esr/fix-arm-atomics-grsec.patch @@ -0,0 +1,342 @@ +--- mozilla-release/ipc/chromium/src/base/atomicops_internals_arm_gcc.h.orig ++++ mozilla-release/ipc/chromium/src/base/atomicops_internals_arm_gcc.h +@@ -1,8 +1,31 @@ +-// Copyright (c) 2009 The Chromium Authors. All rights reserved. +-// Use of this source code is governed by a BSD-style license that can be +-// found in the LICENSE file. ++// Copyright 2010 the V8 project authors. All rights reserved. ++// Redistribution and use in source and binary forms, with or without ++// modification, are permitted provided that the following conditions are ++// met: ++// ++// * Redistributions of source code must retain the above copyright ++// notice, this list of conditions and the following disclaimer. ++// * 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. ++// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT ++// OWNER 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. + +-// This file is an internal atomic implementation, use base/atomicops.h instead. ++// This file is an internal atomic implementation, use atomicops.h instead. + // + // LinuxKernelCmpxchg and Barrier_AtomicIncrement are from Google Gears. + +@@ -12,43 +35,194 @@ + namespace base { + namespace subtle { + +-// 0xffff0fc0 is the hard coded address of a function provided by +-// the kernel which implements an atomic compare-exchange. On older +-// ARM architecture revisions (pre-v6) this may be implemented using +-// a syscall. This address is stable, and in active use (hard coded) +-// by at least glibc-2.7 and the Android C library. +-typedef Atomic32 (*LinuxKernelCmpxchgFunc)(Atomic32 old_value, +- Atomic32 new_value, +- volatile Atomic32* ptr); +-LinuxKernelCmpxchgFunc pLinuxKernelCmpxchg __attribute__((weak)) = +- (LinuxKernelCmpxchgFunc) 0xffff0fc0; ++// Memory barriers on ARM are funky, but the kernel is here to help: ++// ++// * ARMv5 didn't support SMP, there is no memory barrier instruction at ++// all on this architecture, or when targeting its machine code. ++// ++// * Some ARMv6 CPUs support SMP. A full memory barrier can be produced by ++// writing a random value to a very specific coprocessor register. ++// ++// * On ARMv7, the "dmb" instruction is used to perform a full memory ++// barrier (though writing to the co-processor will still work). ++// However, on single core devices (e.g. Nexus One, or Nexus S), ++// this instruction will take up to 200 ns, which is huge, even though ++// it's completely un-needed on these devices. ++// ++// * There is no easy way to determine at runtime if the device is ++// single or multi-core. However, the kernel provides a useful helper ++// function at a fixed memory address (0xffff0fa0), which will always ++// perform a memory barrier in the most efficient way. I.e. on single ++// core devices, this is an empty function that exits immediately. ++// On multi-core devices, it implements a full memory barrier. ++// ++// * This source could be compiled to ARMv5 machine code that runs on a ++// multi-core ARMv6 or ARMv7 device. In this case, memory barriers ++// are needed for correct execution. Always call the kernel helper, even ++// when targeting ARMv5TE. ++// + +-typedef void (*LinuxKernelMemoryBarrierFunc)(void); +-LinuxKernelMemoryBarrierFunc pLinuxKernelMemoryBarrier __attribute__((weak)) = +- (LinuxKernelMemoryBarrierFunc) 0xffff0fa0; ++inline void MemoryBarrier() { ++#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \ ++ defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) ++ __asm__ __volatile__("dmb ish" ::: "memory"); ++#elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || \ ++ defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || \ ++ defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) ++ __asm__ __volatile__("mcr p15,0,r0,c7,c10,5" ::: "memory"); ++#elif defined(__linux__) || defined(__ANDROID__) ++ // Note: This is a function call, which is also an implicit compiler barrier. ++ typedef void (*KernelMemoryBarrierFunc)(); ++ ((KernelMemoryBarrierFunc)0xffff0fa0)(); ++#error MemoryBarrier() is not implemented on this platform. ++#endif ++} + ++// An ARM toolchain would only define one of these depending on which ++// variant of the target architecture is being used. This tests against ++// any known ARMv6 or ARMv7 variant, where it is possible to directly ++// use ldrex/strex instructions to implement fast atomic operations. ++#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \ ++ defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || \ ++ defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || \ ++ defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || \ ++ defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) + + inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr, + Atomic32 old_value, + Atomic32 new_value) { +- Atomic32 prev_value = *ptr; ++ Atomic32 prev_value; ++ int reloop; + do { +- if (!pLinuxKernelCmpxchg(old_value, new_value, +- const_cast(ptr))) { +- return old_value; +- } +- prev_value = *ptr; +- } while (prev_value == old_value); ++ // The following is equivalent to: ++ // ++ // prev_value = LDREX(ptr) ++ // reloop = 0 ++ // if (prev_value != old_value) ++ // reloop = STREX(ptr, new_value) ++ __asm__ __volatile__(" ldrex %0, [%3]\n" ++ " mov %1, #0\n" ++ " cmp %0, %4\n" ++#ifdef __thumb2__ ++ " it eq\n" ++#endif ++ " strexeq %1, %5, [%3]\n" ++ : "=&r"(prev_value), "=&r"(reloop), "+m"(*ptr) ++ : "r"(ptr), "r"(old_value), "r"(new_value) ++ : "cc", "memory"); ++ } while (reloop != 0); + return prev_value; + } + ++inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr, ++ Atomic32 old_value, ++ Atomic32 new_value) { ++ Atomic32 result = NoBarrier_CompareAndSwap(ptr, old_value, new_value); ++ MemoryBarrier(); ++ return result; ++} ++ ++inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr, ++ Atomic32 old_value, ++ Atomic32 new_value) { ++ MemoryBarrier(); ++ return NoBarrier_CompareAndSwap(ptr, old_value, new_value); ++} ++ ++inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr, ++ Atomic32 increment) { ++ Atomic32 value; ++ int reloop; ++ do { ++ // Equivalent to: ++ // ++ // value = LDREX(ptr) ++ // value += increment ++ // reloop = STREX(ptr, value) ++ // ++ __asm__ __volatile__(" ldrex %0, [%3]\n" ++ " add %0, %0, %4\n" ++ " strex %1, %0, [%3]\n" ++ : "=&r"(value), "=&r"(reloop), "+m"(*ptr) ++ : "r"(ptr), "r"(increment) ++ : "cc", "memory"); ++ } while (reloop); ++ return value; ++} ++ ++inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr, ++ Atomic32 increment) { ++ // TODO(digit): Investigate if it's possible to implement this with ++ // a single MemoryBarrier() operation between the LDREX and STREX. ++ // See http://crbug.com/246514 ++ MemoryBarrier(); ++ Atomic32 result = NoBarrier_AtomicIncrement(ptr, increment); ++ MemoryBarrier(); ++ return result; ++} ++ + inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr, + Atomic32 new_value) { + Atomic32 old_value; ++ int reloop; + do { ++ // old_value = LDREX(ptr) ++ // reloop = STREX(ptr, new_value) ++ __asm__ __volatile__(" ldrex %0, [%3]\n" ++ " strex %1, %4, [%3]\n" ++ : "=&r"(old_value), "=&r"(reloop), "+m"(*ptr) ++ : "r"(ptr), "r"(new_value) ++ : "cc", "memory"); ++ } while (reloop != 0); ++ return old_value; ++} ++ ++// This tests against any known ARMv5 variant. ++#elif defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || \ ++ defined(__ARM_ARCH_5TE__) || defined(__ARM_ARCH_5TEJ__) ++ ++// The kernel also provides a helper function to perform an atomic ++// compare-and-swap operation at the hard-wired address 0xffff0fc0. ++// On ARMv5, this is implemented by a special code path that the kernel ++// detects and treats specially when thread pre-emption happens. ++// On ARMv6 and higher, it uses LDREX/STREX instructions instead. ++// ++// Note that this always perform a full memory barrier, there is no ++// need to add calls MemoryBarrier() before or after it. It also ++// returns 0 on success, and 1 on exit. ++// ++// Available and reliable since Linux 2.6.24. Both Android and ChromeOS ++// use newer kernel revisions, so this should not be a concern. ++namespace { ++ ++inline int LinuxKernelCmpxchg(Atomic32 old_value, ++ Atomic32 new_value, ++ volatile Atomic32* ptr) { ++ typedef int (*KernelCmpxchgFunc)(Atomic32, Atomic32, volatile Atomic32*); ++ return ((KernelCmpxchgFunc)0xffff0fc0)(old_value, new_value, ptr); ++} ++ ++} // namespace ++ ++inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr, ++ Atomic32 old_value, ++ Atomic32 new_value) { ++ Atomic32 prev_value; ++ for (;;) { ++ prev_value = *ptr; ++ if (prev_value != old_value) ++ return prev_value; ++ if (!LinuxKernelCmpxchg(old_value, new_value, ptr)) ++ return old_value; ++ } ++} ++ ++inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr, ++ Atomic32 new_value) { ++ Atomic32 old_value; ++ do { + old_value = *ptr; +- } while (pLinuxKernelCmpxchg(old_value, new_value, +- const_cast(ptr))); ++ } while (LinuxKernelCmpxchg(old_value, new_value, ptr)); + return old_value; + } + +@@ -63,36 +237,57 @@ + // Atomic exchange the old value with an incremented one. + Atomic32 old_value = *ptr; + Atomic32 new_value = old_value + increment; +- if (pLinuxKernelCmpxchg(old_value, new_value, +- const_cast(ptr)) == 0) { ++ if (!LinuxKernelCmpxchg(old_value, new_value, ptr)) { + // The exchange took place as expected. + return new_value; + } + // Otherwise, *ptr changed mid-loop and we need to retry. + } +- + } + + inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr, + Atomic32 old_value, + Atomic32 new_value) { +- return NoBarrier_CompareAndSwap(ptr, old_value, new_value); ++ Atomic32 prev_value; ++ for (;;) { ++ prev_value = *ptr; ++ if (prev_value != old_value) { ++ // Always ensure acquire semantics. ++ MemoryBarrier(); ++ return prev_value; ++ } ++ if (!LinuxKernelCmpxchg(old_value, new_value, ptr)) ++ return old_value; ++ } + } + + inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr, + Atomic32 old_value, + Atomic32 new_value) { +- return NoBarrier_CompareAndSwap(ptr, old_value, new_value); ++ // This could be implemented as: ++ // MemoryBarrier(); ++ // return NoBarrier_CompareAndSwap(); ++ // ++ // But would use 3 barriers per succesful CAS. To save performance, ++ // use Acquire_CompareAndSwap(). Its implementation guarantees that: ++ // - A succesful swap uses only 2 barriers (in the kernel helper). ++ // - An early return due to (prev_value != old_value) performs ++ // a memory barrier with no store, which is equivalent to the ++ // generic implementation above. ++ return Acquire_CompareAndSwap(ptr, old_value, new_value); + } + ++#else ++# error "Your CPU's ARM architecture is not supported yet" ++#endif ++ ++// NOTE: Atomicity of the following load and store operations is only ++// guaranteed in case of 32-bit alignement of |ptr| values. ++ + inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) { + *ptr = value; + } + +-inline void MemoryBarrier() { +- pLinuxKernelMemoryBarrier(); +-} +- + inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) { + *ptr = value; + MemoryBarrier(); +@@ -103,9 +298,7 @@ + *ptr = value; + } + +-inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) { +- return *ptr; +-} ++inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) { return *ptr; } + + inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) { + Atomic32 value = *ptr; +@@ -118,7 +311,6 @@ + return *ptr; + } + +-} // namespace base::subtle +-} // namespace base ++} } // namespace base::subtle + + #endif // BASE_ATOMICOPS_INTERNALS_ARM_GCC_H_ diff --git a/community/firefox-esr/fix-fortify-inline.patch b/community/firefox-esr/fix-fortify-inline.patch new file mode 100644 index 0000000000..2498c57fc7 --- /dev/null +++ b/community/firefox-esr/fix-fortify-inline.patch @@ -0,0 +1,11 @@ +--- a/media/webrtc/signaling/src/sdp/sipcc/sdp_os_defs.h ++++ b/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/community/firefox-esr/fix-fortify-system-wrappers.patch b/community/firefox-esr/fix-fortify-system-wrappers.patch new file mode 100644 index 0000000000..c966f31f9d --- /dev/null +++ b/community/firefox-esr/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.orig ++++ ./config/system-headers +@@ -422,7 +422,6 @@ + extras.h + fabdef.h + fcntl.h +-features.h + fibdef.h + File.h + filehdr.h diff --git a/community/firefox-esr/fix-ipc.patch b/community/firefox-esr/fix-ipc.patch new file mode 100644 index 0000000000..8371957d4b --- /dev/null +++ b/community/firefox-esr/fix-ipc.patch @@ -0,0 +1,55 @@ +--- mozilla-release.orig/ipc/chromium/src/base/file_util.h ++++ mozilla-release/ipc/chromium/src/base/file_util.h +@@ -14,10 +14,15 @@ + #include + #elif defined(ANDROID) + #include ++#define NO_FTS + #elif defined(OS_POSIX) + #include +-#include + #include ++#ifdef __GLIBC__ ++#include ++#else ++#define NO_FTS ++#endif + #endif + + #include +--- mozilla-release.orig/ipc/chromium/src/base/file_util_posix.cc ++++ mozilla-release/ipc/chromium/src/base/file_util_posix.cc +@@ -8,13 +8,13 @@ + #include + #include + #include +-#ifndef ANDROID ++#ifndef NO_FTS + #include + #endif + #include + #include + #include +-#include ++#include + #include + #define _DARWIN_USE_64_BIT_INODE // Use 64-bit inode data structures + #include +@@ -67,7 +67,7 @@ + if (!recursive) + return (rmdir(path_str) == 0); + +-#ifdef ANDROID ++#ifdef NO_FTS + // XXX Need ftsless impl for bionic + return false; + #else +@@ -140,7 +140,7 @@ + return false; + } + +-#ifdef ANDROID ++#ifdef NO_FTS + // XXX Need ftsless impl for bionic + return false; + #else diff --git a/community/firefox-esr/fix-linux-include.patch b/community/firefox-esr/fix-linux-include.patch new file mode 100644 index 0000000000..d625557cf9 --- /dev/null +++ b/community/firefox-esr/fix-linux-include.patch @@ -0,0 +1,10 @@ +--- ./xpcom/io/nsLocalFileUnix.cpp.orig ++++ ./xpcom/io/nsLocalFileUnix.cpp +@@ -28,6 +28,7 @@ + #define USE_LINUX_QUOTACTL + #include + #include ++#include + #endif + + #include "xpcom-private.h" diff --git a/community/firefox-esr/fix-media.patch b/community/firefox-esr/fix-media.patch new file mode 100644 index 0000000000..af6045fe72 --- /dev/null +++ b/community/firefox-esr/fix-media.patch @@ -0,0 +1,10 @@ +--- mozilla-release/media.orig/mtransport/third_party/nICEr/src/stun/addrs.c ++++ mozilla-release/media/mtransport/third_party/nICEr/src/stun/addrs.c +@@ -45,7 +45,6 @@ + #include + #include + #ifndef ANDROID +-#include + #include + #else + #include diff --git a/community/firefox-esr/fix-netwerk.patch b/community/firefox-esr/fix-netwerk.patch new file mode 100644 index 0000000000..a31b286229 --- /dev/null +++ b/community/firefox-esr/fix-netwerk.patch @@ -0,0 +1,37 @@ +--- ./netwerk.orig/sctp/src/netinet/sctp_os_userspace.h ++++ ./netwerk/sctp/src/netinet/sctp_os_userspace.h +@@ -400,11 +400,8 @@ + }; + + #else /* !defined(Userspace_os_Windows) */ +-#include /* needed? added from old __FreeBSD__ */ + #include +-#if defined(__Userspace_os_DragonFly) || defined(__Userspace_os_FreeBSD) || defined(__Userspace_os_Linux) || defined(__Userspace_os_NetBSD) || defined(__Userspace_os_OpenBSD) || defined(ANDROID) + #include +-#endif + typedef pthread_mutex_t userland_mutex_t; + typedef pthread_cond_t userland_cond_t; + typedef pthread_t userland_thread_t; +--- ./netwerk.orig/sctp/src/netinet/sctp_pcb.c ++++ ./netwerk/sctp/src/netinet/sctp_pcb.c +@@ -30,6 +30,9 @@ + * THE POSSIBILITY OF SUCH DAMAGE. + */ + ++#define _BSD_SOURCE /* for IPPORT_RESERVED */ ++#include ++ + #ifdef __FreeBSD__ + #include + __FBSDID("$FreeBSD: head/sys/netinet/sctp_pcb.c 258765 2013-11-30 12:51:19Z tuexen $"); +--- ./netwerk.orig/sctp/src/user_queue.h ++++ ./netwerk/sctp/src/user_queue.h +@@ -31,7 +31,7 @@ + #ifndef _USER_QUEUE_H_ + #define _USER_QUEUE_H_ + +-#if !defined (__Userspace_os_Windows) ++#if defined(__Userspace_os_FreeBSD) + #include + #endif + /* diff --git a/community/firefox-esr/fix-toolkit.patch b/community/firefox-esr/fix-toolkit.patch new file mode 100644 index 0000000000..0303223652 --- /dev/null +++ b/community/firefox-esr/fix-toolkit.patch @@ -0,0 +1,151 @@ +diff -ru mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc mozilla-release/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc +--- mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc 2014-03-15 05:19:36.000000000 +0000 ++++ mozilla-release/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 +diff -ru mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.cc mozilla-release/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc +--- mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.cc 2014-03-15 05:19:36.000000000 +0000 ++++ mozilla-release/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 { +diff -ru mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.h mozilla-release/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h +--- mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.h 2014-03-15 05:19:36.000000000 +0000 ++++ mozilla-release/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h 2014-04-17 10:24:33.793431933 +0000 +@@ -53,9 +53,10 @@ + #include + #endif + +-#ifdef HAVE_A_OUT_H ++#if 0 + #include + #endif ++ + #ifdef HAVE_MACH_O_NLIST_H + #include + #endif +diff -ru mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h mozilla-release/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h +--- mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h 2014-03-15 05:19:37.000000000 +0000 ++++ mozilla-release/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h 2014-04-17 10:24:33.793431933 +0000 +@@ -2813,7 +2813,7 @@ + LSS_INLINE _syscall6(void*, mmap, void*, s, + size_t, l, int, p, + int, f, int, d, +- __off64_t, o) ++ off_t, o) + + LSS_INLINE _syscall4(int, newfstatat, int, d, + const char *, p, +diff -ru mozilla-release/toolkit.orig/mozapps/update/common/updatedefines.h mozilla-release/toolkit/mozapps/update/common/updatedefines.h +--- mozilla-release/toolkit.orig/mozapps/update/common/updatedefines.h 2014-03-15 05:19:37.000000000 +0000 ++++ mozilla-release/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 +diff -ru mozilla-release/toolkit.orig/mozapps/update/updater/updater.cpp mozilla-release/toolkit/mozapps/update/updater/updater.cpp +--- mozilla-release/toolkit.orig/mozapps/update/updater/updater.cpp 2014-03-15 05:19:37.000000000 +0000 ++++ mozilla-release/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 -ru mozilla-release/toolkit.orig/xre/nsSigHandlers.cpp mozilla-release/toolkit/xre/nsSigHandlers.cpp +--- mozilla-release/toolkit.orig/xre/nsSigHandlers.cpp 2014-03-15 05:19:38.000000000 +0000 ++++ mozilla-release/toolkit/xre/nsSigHandlers.cpp 2014-04-17 10:24:33.796765327 +0000 +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + #include "prthread.h" + #include "plstr.h" + #include "prenv.h" +@@ -152,7 +153,7 @@ + status->__invalid = status->__denorm = status->__zdiv = status->__ovrfl = status->__undfl = + status->__precis = status->__stkflt = status->__errsumm = 0; + +- __uint32_t *mxcsr = &uc->uc_mcontext->__fs.__fpu_mxcsr; ++ u_int32_t *mxcsr = &uc->uc_mcontext->__fs.__fpu_mxcsr; + *mxcsr |= SSE_EXCEPTION_MASK; /* disable all SSE exceptions */ + *mxcsr &= ~SSE_STATUS_FLAGS; /* clear all pending SSE exceptions */ + #endif +@@ -172,13 +173,13 @@ + *sw &= ~FPU_STATUS_FLAGS; + #endif + #if defined(__amd64__) +- __uint16_t *cw = &uc->uc_mcontext.fpregs->cwd; ++ u_int16_t *cw = &uc->uc_mcontext.fpregs->cwd; + *cw |= FPU_EXCEPTION_MASK; + +- __uint16_t *sw = &uc->uc_mcontext.fpregs->swd; ++ u_int16_t *sw = &uc->uc_mcontext.fpregs->swd; + *sw &= ~FPU_STATUS_FLAGS; + +- __uint32_t *mxcsr = &uc->uc_mcontext.fpregs->mxcsr; ++ u_int32_t *mxcsr = &uc->uc_mcontext.fpregs->mxcsr; + *mxcsr |= SSE_EXCEPTION_MASK; /* disable all SSE exceptions */ + *mxcsr &= ~SSE_STATUS_FLAGS; /* clear all pending SSE exceptions */ + #endif +@@ -187,24 +188,24 @@ + ucontext_t *uc = (ucontext_t *)context; + + #if defined(__i386) +- uint32_t *cw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.state[0]; ++ u_int32_t *cw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.state[0]; + *cw |= FPU_EXCEPTION_MASK; + +- uint32_t *sw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.state[1]; ++ u_int32_t *sw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.state[1]; + *sw &= ~FPU_STATUS_FLAGS; + + /* address of the instruction that caused the exception */ +- uint32_t *ip = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.state[3]; ++ u_int32_t *ip = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.state[3]; + uc->uc_mcontext.gregs[REG_PC] = *ip; + #endif + #if defined(__amd64__) +- uint16_t *cw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.cw; ++ u_int16_t *cw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.cw; + *cw |= FPU_EXCEPTION_MASK; + +- uint16_t *sw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.sw; ++ u_int16_t *sw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.sw; + *sw &= ~FPU_STATUS_FLAGS; + +- uint32_t *mxcsr = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.mxcsr; ++ u_int32_t *mxcsr = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.mxcsr; + *mxcsr |= SSE_EXCEPTION_MASK; /* disable all SSE exceptions */ + *mxcsr &= ~SSE_STATUS_FLAGS; /* clear all pending SSE exceptions */ + #endif diff --git a/community/firefox-esr/fix-tools.patch b/community/firefox-esr/fix-tools.patch new file mode 100644 index 0000000000..b0a6d4fbcc --- /dev/null +++ b/community/firefox-esr/fix-tools.patch @@ -0,0 +1,49 @@ +--- mozilla-release.orig/tools/profiler/local_debug_info_symbolizer.cc ++++ mozilla-release/tools/profiler/local_debug_info_symbolizer.cc +@@ -3,6 +3,7 @@ + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + ++#include + #include "PlatformMacros.h" + #include "nsAutoPtr.h" + +--- mozilla-release.orig/tools/profiler/platform-linux.cc ++++ mozilla-release/tools/profiler/platform-linux.cc +@@ -84,7 +84,7 @@ + + #define SIGNAL_SAVE_PROFILE SIGUSR2 + +-#if defined(__GLIBC__) ++#if 1 + // glibc doesn't implement gettid(2). + #include + pid_t gettid() +--- mozilla-release.orig/tools/profiler/platform.h ++++ mozilla-release/tools/profiler/platform.h +@@ -29,6 +29,8 @@ + #ifndef TOOLS_PLATFORM_H_ + #define TOOLS_PLATFORM_H_ + ++#include ++ + #ifdef ANDROID + #include + #else +--- mozilla-release.orig/tools/profiler/LulElf.cpp ++++ mozilla-release/tools/profiler/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; + } + diff --git a/community/firefox-esr/getchar.patch b/community/firefox-esr/getchar.patch new file mode 100644 index 0000000000..981206b971 --- /dev/null +++ b/community/firefox-esr/getchar.patch @@ -0,0 +1,14 @@ +--- ./media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp.orig ++++ ./media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp +@@ -21,6 +21,11 @@ + #include "constants.hpp" + #include + ++/* prevent the getchar macro from stdio to take preference over the local var */ ++#if defined(__UCLIBC__) ++#undef getchar ++#endif ++ + namespace boost { + namespace detail { + //This only works on unsigned data types diff --git a/community/firefox-esr/mozconfig b/community/firefox-esr/mozconfig new file mode 100644 index 0000000000..8fbbf3d6e6 --- /dev/null +++ b/community/firefox-esr/mozconfig @@ -0,0 +1,54 @@ +. $topsrcdir/browser/config/mozconfig + +ac_add_options --prefix=/usr +ac_add_options --libdir=/usr/lib + +ac_add_options --with-pthreads +ac_add_options --with-system-bz2 +ac_add_options --with-system-icu +ac_add_options --with-system-jpeg +ac_add_options --with-system-libevent +ac_add_options --with-system-libvpx +ac_add_options --with-system-nspr +ac_add_options --with-system-nss +ac_add_options --with-system-pixman +ac_add_options --with-system-png +ac_add_options --with-system-zlib + +ac_add_options --enable-system-hunspell +ac_add_options --enable-system-sqlite +ac_add_options --enable-system-cairo +ac_add_options --enable-system-ffi + +# make the -dbg package more meaningful with symbols +# ac_add_options --enable-debug-symbols=-g +ac_add_options --disable-install-strip + +ac_add_options --enable-gstreamer=1.0 +ac_add_options --enable-official-branding +ac_add_options --enable-optimize="$CFLAGS" +ac_add_options --enable-startup-notification + +ac_add_options --disable-cpp-exceptions +ac_add_options --disable-crashreporter +ac_add_options --disable-elf-hack +ac_add_options --disable-gnomevfs +ac_add_options --disable-installer +ac_add_options --disable-javaxpcom +ac_add_options --disable-jemalloc +ac_add_options --disable-mochitest +ac_add_options --disable-pulseaudio +ac_add_options --disable-static +ac_add_options --disable-strip +ac_add_options --disable-tests +ac_add_options --disable-updater +ac_add_options --disable-xprint + +export BUILD_OFFICIAL=1 +export MOZILLA_OFFICIAL=1 +export USE_SHORT_LIBNAME=1 + +mk_add_options BUILD_OFFICIAL=1 +mk_add_options MOZILLA_OFFICIAL=1 +mk_add_options USE_SHORT_LIBNAME=1 +mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir diff --git a/community/firefox-esr/mozilla-build-arm.patch b/community/firefox-esr/mozilla-build-arm.patch new file mode 100644 index 0000000000..dcf2f6d8a4 --- /dev/null +++ b/community/firefox-esr/mozilla-build-arm.patch @@ -0,0 +1,11 @@ +--- ./gfx/ycbcr/moz.build.orig 2014-04-03 13:50:38.990296661 +0000 ++++ ./gfx/ycbcr/moz.build 2014-04-03 13:52:26.878268547 +0000 +@@ -59,7 +59,7 @@ + 'yuv_row_other.cpp', + ] + +-if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['HAVE_ARM_NEON']: ++if CONFIG['HAVE_ARM_NEON']: + SOURCES += [ + 'yuv_row_arm.s', + ] diff --git a/community/firefox-esr/rhbz-966424.patch b/community/firefox-esr/rhbz-966424.patch new file mode 100644 index 0000000000..2be9f931a6 --- /dev/null +++ b/community/firefox-esr/rhbz-966424.patch @@ -0,0 +1,14 @@ +diff -up firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm.966424 firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm +--- mozilla-release/toolkit/modules/CertUtils.jsm.966424 2014-10-14 08:12:14.358697255 +0200 ++++ mozilla-release/toolkit/modules/CertUtils.jsm 2014-10-14 08:17:59.962181908 +0200 +@@ -174,7 +174,9 @@ this.checkCert = + } + + function isBuiltinToken(tokenName) { +- return tokenName == "Builtin Object Token"; ++ return tokenName == "Builtin Object Token" || ++ tokenName == "Default Trust" || ++ tokenName == "System Trust"; + } + + /** diff --git a/community/firefox-esr/stab.h b/community/firefox-esr/stab.h new file mode 100644 index 0000000000..6f70af3989 --- /dev/null +++ b/community/firefox-esr/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/community/firefox-esr/stat.patch b/community/firefox-esr/stat.patch new file mode 100644 index 0000000000..ed7dc007e2 --- /dev/null +++ b/community/firefox-esr/stat.patch @@ -0,0 +1,25 @@ +--- ./dom/system/OSFileConstants.cpp.orig 2013-04-17 06:17:29.798371189 +0000 ++++ ./dom/system/OSFileConstants.cpp 2013-04-17 06:30:30.032285977 +0000 +@@ -509,6 +509,11 @@ + INT_CONSTANT(_STAT_VER), + #endif // defined(_STAT_VER) + ++ // glibc's stat/lstat/fstat are macros while uclibc's are not ++#if defined(__GLIBC__) && !defined(__UCLIBC__) ++ { "OSFILE_STAT_MACROS", INT_TO_JSVAL(1) }, ++#endif // defined(stat) ++ + PROP_END + }; + +--- ./toolkit/components/osfile/modules/osfile_unix_back.jsm.orig 2014-04-03 13:08:26.686409787 +0000 ++++ ./toolkit/components/osfile/modules/osfile_unix_back.jsm 2014-04-03 13:34:14.101716259 +0000 +@@ -512,7 +512,7 @@ + /*path*/ Type.fd, + /*buf*/ Type.stat.out_ptr + ); +- } else if (Const._STAT_VER != undefined) { ++ } else if (Const.OSFILE_STAT_MACROS != undefined) { + const ver = Const._STAT_VER; + let xstat_name, lxstat_name, fxstat_name; + if (OS.Constants.Sys.Name == "SunOS") { diff --git a/community/firefox-esr/vendor.js b/community/firefox-esr/vendor.js new file mode 100644 index 0000000000..2ef8b0d5b2 --- /dev/null +++ b/community/firefox-esr/vendor.js @@ -0,0 +1,3 @@ +// Disable default browser checking. +pref("browser.shell.checkDefaultBrowser", false); + diff --git a/community/firefox/0002-Use-C99-math-isfinite.patch b/community/firefox/0002-Use-C99-math-isfinite.patch deleted file mode 100644 index ba4f5cfb3d..0000000000 --- a/community/firefox/0002-Use-C99-math-isfinite.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- ./xpcom/ds/nsMathUtils.h.orig -+++ ./xpcom/ds/nsMathUtils.h -@@ -104,12 +104,12 @@ - #ifdef WIN32 - // NOTE: '!!' casts an int to bool without spamming MSVC warning C4800. - return !!_finite(aNum); --#elif defined(XP_DARWIN) -+#elif defined(XP_DARWIN) || defined(_GLIBCXX_CMATH) - // Darwin has deprecated |finite| and recommends |isfinite|. The former is - // not present in the iOS SDK. - return std::isfinite(aNum); - #else -- return finite(aNum); -+ return isfinite(aNum); - #endif - } - diff --git a/community/firefox/0003-xulrunner-jemalloc-aslr.patch b/community/firefox/0003-xulrunner-jemalloc-aslr.patch deleted file mode 100644 index 7aa00009f0..0000000000 --- a/community/firefox/0003-xulrunner-jemalloc-aslr.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 88bb9f90ec1e4b43fb78596c8ff7577c92592eb4 Mon Sep 17 00:00:00 2001 -From: Natanael Copa -Date: Fri, 25 Nov 2011 08:36:52 +0000 -Subject: [PATCH 3/4] xulrunner: jemalloc aslr - ---- - memory/jemalloc/jemalloc.c | 33 ++++++++++++++++++++++----------- - 1 files changed, 22 insertions(+), 11 deletions(-) - -diff --git a/memory/jemalloc/jemalloc.c b/memory/jemalloc/jemalloc.c -index ad7c450..91de92c 100644 ---- a/memory/mozjemalloc/jemalloc.c -+++ b/memory/mozjemalloc/jemalloc.c -@@ -410,7 +410,7 @@ void *_mmap(void *addr, size_t length, int prot, int flags, - static const bool __isthreaded = true; - #endif - --#if defined(MOZ_MEMORY_SOLARIS) && defined(MAP_ALIGN) && !defined(JEMALLOC_NEVER_USES_MAP_ALIGN) -+#if defined(MOZ_MEMORY_SOLARIS) || defined(MOZ_MEMORY_LINUX) || defined(MOZ_MEMORY_BSD) - #define JEMALLOC_USES_MAP_ALIGN /* Required on Solaris 10. Might improve performance elsewhere. */ - #endif - -@@ -2181,20 +2181,31 @@ pages_map_align(size_t size, int pfd, size_t alignment) - * We don't use MAP_FIXED here, because it can cause the *replacement* - * of existing mappings, and we only want to create new mappings. - */ --#ifdef MALLOC_PAGEFILE -- if (pfd != -1) { -- ret = mmap((void *)alignment, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | -- MAP_NOSYNC | MAP_ALIGN, pfd, 0); -- } else --#endif -- { -- ret = mmap((void *)alignment, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | -- MAP_NOSYNC | MAP_ALIGN | MAP_ANON, -1, 0); -- } -+ ret = mmap(NULL, size + alignment, PROT_READ | PROT_WRITE, MAP_PRIVATE | -+ MAP_NOSYNC| MAP_ANON, -1, 0); - assert(ret != NULL); - - if (ret == MAP_FAILED) - ret = NULL; -+ else { -+ uintptr_t aligned_ret; -+ size_t extra_size; -+ -+ aligned_ret = (uintptr_t)ret + alignment - 1; -+ aligned_ret &= ~(alignment - 1); -+ extra_size = aligned_ret - (uintptr_t)ret; -+ munmap(ret, extra_size); -+ munmap(ret + extra_size + size, alignment - extra_size); -+ ret = (void *)aligned_ret; -+#ifdef MALLOC_PAGEFILE -+ if (pfd != -1) { -+ ret = mmap(ret, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | -+ MAP_NOSYNC | MAP_FIXED, pfd, 0); -+ } -+ if (ret == MAP_FAILED) -+ ret = NULL; -+#endif -+ } - return (ret); - } - #endif --- -1.7.7.4 - diff --git a/community/firefox/APKBUILD b/community/firefox/APKBUILD deleted file mode 100644 index 581c142355..0000000000 --- a/community/firefox/APKBUILD +++ /dev/null @@ -1,223 +0,0 @@ -# Contributor: William Pitcock -# Maintainer: Natanael Copa -pkgname=firefox -pkgver=38.7.0 -_pkgver=$pkgver -_xulver=$pkgver -pkgrel=0 -pkgdesc="Firefox web browser" -url="https://www.mozilla.org/en-US/firefox/organizations/faq/" -arch="all" -license="GPL LGPL MPL" -depends="" -depends_dev=" - alsa-lib-dev - bzip2-dev - dbus-glib-dev - gst-plugins-base1-dev - gstreamer1-dev - gtk+2.0-dev - hunspell-dev - icu-dev - libevent-dev - libidl-dev - libjpeg-turbo-dev - libnotify-dev - libogg-dev - libtheora-dev - libvorbis-dev - libvpx-dev - libxt-dev - libxcomposite-dev - mesa-dev - nspr-dev - nss-dev - sqlite-dev - startup-notification-dev - wireless-tools-dev - " -makedepends="$depends_dev - autoconf - automake - bsd-compat-headers - libtool - paxmark - python - sed - yasm - zip - " - -install="" -subpackages="$pkgname-dev" -source="http://ftp.mozilla.org/pub/firefox/releases/${pkgver}esr/source/firefox-${pkgver}esr.source.tar.bz2 - mozconfig - vendor.js - - 0002-Use-C99-math-isfinite.patch - fix-arm-atomics-grsec.patch - fix-ipc.patch - fix-media.patch - fix-netwerk.patch - fix-toolkit.patch - fix-tools.patch - fix-linux-include.patch - mozilla-build-arm.patch - stab.h - - rhbz-966424.patch - fix-fortify-inline.patch - fix-fortify-system-wrappers.patch - - firefox.desktop - firefox-safe.desktop" - -_builddir="${srcdir}/mozilla-esr${pkgver%%.*}" -_mozappdir=/usr/lib/firefox-$pkgver -_mozappdirdev=/usr/lib/firefox-devel-$pkgver - -# help our shared-object scanner to find the libs -ldpath="$_mozappdir" - -prepare() { - local i - - cd "$_builddir" || return 1 - - for i in $source; do - case $i in - *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; - esac - done - cp "$srcdir"/stab.h toolkit/crashreporter/google-breakpad/src/ - - cp "${srcdir}/mozconfig" .mozconfig -} - -build() { - cd "$_builddir" - - # mozilla's buildsystem is on drugs - export CFLAGS="$(echo $CFLAGS | sed -e 's/-Wall//' -e 's/-fexceptions/-fno-exceptions/g')" - export CXXFLAGS="$CFLAGS" - export SHELL=/bin/sh - - # set rpath so linker finds the libs - export LDFLAGS="$LDFLAGS -Wl,-rpath,${_mozappdir}" - - make -f client.mk build \ - STRIP="/bin/true" \ - || return 1 -} - -package() { - cd "$_builddir" - - # only used for startupcache creation. - local paxflags="-msp" - paxmark "$paxflags" */dist/bin/xpcshell || return 1 - - make -j1 -f client.mk install \ - DESTDIR="$pkgdir" \ - MOZ_MAKE_FLAGS="$MAKEOPTS" \ - || return 1 - - install -m755 -d ${pkgdir}/usr/share/applications - install -m755 -d ${pkgdir}/usr/share/pixmaps - install -m644 "$_builddir"/browser/branding/official/default48.png \ - ${pkgdir}/usr/share/pixmaps/firefox.png || return 1 - install -m644 ${srcdir}/firefox.desktop ${pkgdir}/usr/share/applications/firefox.desktop - install -m644 ${srcdir}/firefox-safe.desktop ${pkgdir}/usr/share/applications/firefox-safe.desktop - - # firefox currently does not work with mprotect. disable it for now - local paxflags="-mp" - [ "$CARCH" = "x86" ] && paxflags="-msp" - - paxmark "$paxflags" "$pkgdir"/$_mozappdir/firefox || return 1 - paxmark "$paxflags" "$pkgdir"/$_mozappdir/plugin-container || return 1 - - # xulrunner stub launcher has changed to using a symlink overlay... - # go figure - ln -sf /usr/lib/xulrunner-${_xulver} ${pkgdir}/$_mozappdir/xulrunner - - # launcher as symlink is broken from firefox-7.0 - rm "$pkgdir"/usr/bin/firefox || return 1 - libgl=$(scanelf -qF '#F%S' /usr/lib/libGL.so) - cat > "$pkgdir"/usr/bin/firefox << __EOF__ -#!/bin/sh - -exec $_mozappdir/firefox "\$@" -__EOF__ - chmod 755 "$pkgdir"/usr/bin/firefox - - # install our vendor prefs - install -d "$pkgdir"/$_mozappdir/browser/defaults/preferences - cat "$srcdir"/vendor.js >> "$pkgdir"/$_mozappdir/browser/defaults/preferences/firefox-branding.js - - # remove copied, huge, libraries - rm -f "$pkgdir"/${_mozappdirdev}/sdk/lib/libmozjs.so - rm -f "$pkgdir"/${_mozappdirdev}/sdk/lib/libmozalloc.so - rm -f "$pkgdir"/${_mozappdirdev}/sdk/lib/libxul.so -} - -dev() { - mkdir -p "$subpkgdir"/${_mozappdirdev%/*} - mv "$pkgdir"/${_mozappdirdev} "$subpkgdir"/${_mozappdirdev%/*} \ - || return 1 - default_dev -} - -md5sums="f0d5c2adcff266ea15c94db6b9d26a26 firefox-38.7.0esr.source.tar.bz2 -1f4c60e662ed93784431bd06c5141719 mozconfig -1515663477ce427cbdc42f04d8d5ca4e vendor.js -6ab77b80c8c7d6fd07ab53c54561f4df 0002-Use-C99-math-isfinite.patch -b18bd948aae828e5c8f5f63e440c96d6 fix-arm-atomics-grsec.patch -0c453c2e058ac568e0148c02b1c09abd fix-ipc.patch -f8bc97333847f37597c0bac0dca64eb2 fix-media.patch -170b8e7f8cab21f0965f226c291a57f9 fix-netwerk.patch -296954be4c6d6bfcc24d0a46a2bd7d74 fix-toolkit.patch -2279c55a85013fc1c0d01427768edd4d fix-tools.patch -2f0b995b1313884b10e4a61c2ce2cd01 fix-linux-include.patch -308ba5b54116a035fe68d0d5c3974857 mozilla-build-arm.patch -4383d038b8d8411ea46f4a109197c19e stab.h -15ebeeeb6823c185f4fed98e9bf1b786 rhbz-966424.patch -f29e0036edc7b3a4158a82fa97bde500 fix-fortify-inline.patch -9aba3811121f113fe547947591802d2b fix-fortify-system-wrappers.patch -ba96924ece1d77453e462429037a2ce5 firefox.desktop -6f38a5899034b7786cb1f75ad42032b8 firefox-safe.desktop" -sha256sums="5312ad03ccff3ca233d207b6e8e433bddb893ab6acc5ca2dfc5b7c18bb0dc8c0 firefox-38.7.0esr.source.tar.bz2 -23c2b4535ce83c92ba978e15ce328c9f140def155d12523c00df30baf41b98dc mozconfig -d72ca759792cc8c88efc664d30087a139fed7fc3d7d058e4cd9ab287bb80ea46 vendor.js -080a55182b865471a86fa4b70a66ed9495f1e536f7fdc4060cb8c675b4749c6e 0002-Use-C99-math-isfinite.patch -ff7cb3c9c4712e0517a6f11e3bf08e9b0d13dbe6384930bdc7f55b1ceed039b5 fix-arm-atomics-grsec.patch -fa7d50f399b6fc1ec1c007cabadc5c0cb9e1daf92c7f6ad89f651b8ce268c765 fix-ipc.patch -c1d0fbcf5e8610df9adc66ea956753e7d495e8ed2d1c1e06d183f4680c85db97 fix-media.patch -4a2f8ff5e9b1359541eba8854098cee2caeb40ad9dbdc4b8fcf48b47ea8ca2d2 fix-netwerk.patch -666883189dba3f4c7ba6b5bc85026c85bcb84477c2d5ba00d6414ddd0f744368 fix-toolkit.patch -60ed0870119480994c6c455034c52dd21b8482b7617c3a0032e3b2abf4467e4d fix-tools.patch -a3a6291888819e0f10e3ca05b2979093b32c723c4bf67b19ea1ab14555085236 fix-linux-include.patch -6f5f5e4d2a17182b72b248e896450235ccdaf63252fdb89a8deb55da8adc9be3 mozilla-build-arm.patch -960d82bbfdc88c95f5cb4f2e1c1bf23dae7519b3b7203914d7b3ddbff1ba4c28 stab.h -a50d15a640f230a2c66e1eb2afd2bed4117605d0f1591dcfec1ca30f0bc2352f rhbz-966424.patch -ecf808ef1bc2920f6f7a4786fafb46c74e8a2c3bc628f28f10d6e8e1a265e609 fix-fortify-inline.patch -cd19195cb4c316ad9f7d377cd8581218c888863b1bc4d112c97f48a4425fb946 fix-fortify-system-wrappers.patch -b571c4a49884a3c98806246c9cc3e60c73d5a8f4aeb7f96217db0be1d6210eda firefox.desktop -4b6de45753856a890f4482055666e77f9b01bdfb7e0df08bafaa3a4d9937eed3 firefox-safe.desktop" -sha512sums="edb8cdb06d82a58c3dca216402a4df0afb21bcaf97cbf3ebc3857249b281283f099267284f025fb724f47eff9c3b7569f6ae000003332c47264ca254f73e65ca firefox-38.7.0esr.source.tar.bz2 -e14b4a646230f7a752ef864b0e6a074fdac74d6c4abde2c31656eb10ac6f002a5c664d257bf3f4bd22544f10103e38d5fae49f84fcaae402b81940e72bcfe0e5 mozconfig -93570f821e59af4d233fc4b1df85e1d145a5e041ad402fd72921987a5a2f5218538d7a13d59bbf0bda5e7df1d5281407674a3765625936340106d1185b15b5d8 vendor.js -7e123144bc2b1efed149dfb41b255c447d43ea93a63ebe114d01945e6a6d69edc2f2a3c36980a93279106c1842355851b8b6c1d96679ee6be7b9b30513e0b1a8 0002-Use-C99-math-isfinite.patch -4311464ae52b6d2e2b02c789c6d5fca9b3c211888a983aa609a62c2f2554516fea735ea90673387c69b38a30aa8453ed79faa44b5163df4293880d40df676b2d fix-arm-atomics-grsec.patch -6419b3ec12c775c8bbce2c5737e68bb6c93f5b6c69af65b4fbbc525de3e2022def61943ab713c278aff9a6c27c1df1e19fb94940a755a94f6b40fd0492fae228 fix-ipc.patch -f4d1b0814247cdfe1655a0f345def4f80bd66f37ae5b0edc2cd6b8358e39e9a1bcc0a4ed7d1c4074a1302fb027a2f8be549225c5f4f56caf2513c968ed05d666 fix-media.patch -8a896ee4d1465a844351cec84217de1a28b9f27bfc1e34cc71368664b5b8804bd66bdcadc78c78ee365abd1d0cafed1e6c568045c93cb78ac94e2818f503d58c fix-netwerk.patch -72459754016f254c58d56d9a8719897fa8da9cf969eaa498e1e755457942d3f0ac56e4abd3f6a66ef924c94aa034d0af18a1fb653926b2496f0c2615fdb24c5e fix-toolkit.patch -426b57ce698de3eecd1b52f2998974c4e0b5922584b09b554d436c61fee039d1f86345e746fee067801ebbf50815c4d19b96266a2ed72a35ae5c3edbdb57bba1 fix-tools.patch -2c3319fd625c5d183e310ce6a27ec35e91caafd2206b7b992a539924f9bdb001b0340f1f4451650d4d968134ad35ba1f955cacfff10cb58980f27c42c90d280d fix-linux-include.patch -e61664bc93eadce5016a06a4d0684b34a05074f1815e88ef2613380d7b369c6fd305fb34f83b5eb18b9e3138273ea8ddcfdcb1084fdcaa922a1e5b30146a3b18 mozilla-build-arm.patch -0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127 stab.h -06ededcd196af98b77991dcba3b710b0dfc061404adb4676fcc380be80410a2621f64d67257b0aefdf36f566e0ea1294b5405b7b4db43e83281a1c64d02da579 rhbz-966424.patch -09bc32cf9ee81b9cc6bb58ddbc66e6cc5c344badff8de3435cde5848e5a451e0172153231db85c2385ff05b5d9c20760cb18e4138dfc99060a9e960de2befbd5 fix-fortify-inline.patch -2a967e4619fd89a046bd40be7fdcef646fcb1eba5e47afc96aa1d59c25bcc8747cb07baee6c11f3b803db0981aced181534b806778e4d21e74958f5f4d74c784 fix-fortify-system-wrappers.patch -f3b7c3e804ce04731012a46cb9e9a6b0769e3772aef9c0a4a8c7520b030fdf6cd703d5e9ff49275f14b7d738fe82a0a4fde3bc3219dff7225d5db0e274987454 firefox.desktop -5dcb6288d0444a8a471d669bbaf61cdb1433663eff38b72ee5e980843f5fc07d0d60c91627a2c1159215d0ad77ae3f115dcc5fdfe87e64ca704b641aceaa44ed firefox-safe.desktop" diff --git a/community/firefox/firefox-safe.desktop b/community/firefox/firefox-safe.desktop deleted file mode 100644 index 1538fc6748..0000000000 --- a/community/firefox/firefox-safe.desktop +++ /dev/null @@ -1,11 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Exec=firefox -safe-mode %u -Icon=firefox -Type=Application -Terminal=false -MultipleArgs=false -Name=Firefox - Safe Mode -GenericName=Web Browser - Safe Mode -StartupNotify=false -Categories=Network;WebBrowser; diff --git a/community/firefox/firefox.desktop b/community/firefox/firefox.desktop deleted file mode 100644 index d048ce46c3..0000000000 --- a/community/firefox/firefox.desktop +++ /dev/null @@ -1,81 +0,0 @@ -[Desktop Entry] -Exec=firefox %u -Icon=firefox -Type=Application -Terminal=false -Name=Firefox -Name[bn]=ফায়ারফক্স3 -Name[eo]=Fajrovulpo3 -Name[fi]=Firefox3 -Name[pa]=ਫਾਇਰਫੋਕਸ3 -Name[tg]=Рӯбоҳи оташин3 -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; -StartupNotify=true -Categories=Network;WebBrowser; diff --git a/community/firefox/fix-arm-atomics-grsec.patch b/community/firefox/fix-arm-atomics-grsec.patch deleted file mode 100644 index 5524b2aa73..0000000000 --- a/community/firefox/fix-arm-atomics-grsec.patch +++ /dev/null @@ -1,342 +0,0 @@ ---- mozilla-release/ipc/chromium/src/base/atomicops_internals_arm_gcc.h.orig -+++ mozilla-release/ipc/chromium/src/base/atomicops_internals_arm_gcc.h -@@ -1,8 +1,31 @@ --// Copyright (c) 2009 The Chromium Authors. All rights reserved. --// Use of this source code is governed by a BSD-style license that can be --// found in the LICENSE file. -+// Copyright 2010 the V8 project authors. All rights reserved. -+// Redistribution and use in source and binary forms, with or without -+// modification, are permitted provided that the following conditions are -+// met: -+// -+// * Redistributions of source code must retain the above copyright -+// notice, this list of conditions and the following disclaimer. -+// * 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. -+// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -+// OWNER 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. - --// This file is an internal atomic implementation, use base/atomicops.h instead. -+// This file is an internal atomic implementation, use atomicops.h instead. - // - // LinuxKernelCmpxchg and Barrier_AtomicIncrement are from Google Gears. - -@@ -12,43 +35,194 @@ - namespace base { - namespace subtle { - --// 0xffff0fc0 is the hard coded address of a function provided by --// the kernel which implements an atomic compare-exchange. On older --// ARM architecture revisions (pre-v6) this may be implemented using --// a syscall. This address is stable, and in active use (hard coded) --// by at least glibc-2.7 and the Android C library. --typedef Atomic32 (*LinuxKernelCmpxchgFunc)(Atomic32 old_value, -- Atomic32 new_value, -- volatile Atomic32* ptr); --LinuxKernelCmpxchgFunc pLinuxKernelCmpxchg __attribute__((weak)) = -- (LinuxKernelCmpxchgFunc) 0xffff0fc0; -+// Memory barriers on ARM are funky, but the kernel is here to help: -+// -+// * ARMv5 didn't support SMP, there is no memory barrier instruction at -+// all on this architecture, or when targeting its machine code. -+// -+// * Some ARMv6 CPUs support SMP. A full memory barrier can be produced by -+// writing a random value to a very specific coprocessor register. -+// -+// * On ARMv7, the "dmb" instruction is used to perform a full memory -+// barrier (though writing to the co-processor will still work). -+// However, on single core devices (e.g. Nexus One, or Nexus S), -+// this instruction will take up to 200 ns, which is huge, even though -+// it's completely un-needed on these devices. -+// -+// * There is no easy way to determine at runtime if the device is -+// single or multi-core. However, the kernel provides a useful helper -+// function at a fixed memory address (0xffff0fa0), which will always -+// perform a memory barrier in the most efficient way. I.e. on single -+// core devices, this is an empty function that exits immediately. -+// On multi-core devices, it implements a full memory barrier. -+// -+// * This source could be compiled to ARMv5 machine code that runs on a -+// multi-core ARMv6 or ARMv7 device. In this case, memory barriers -+// are needed for correct execution. Always call the kernel helper, even -+// when targeting ARMv5TE. -+// - --typedef void (*LinuxKernelMemoryBarrierFunc)(void); --LinuxKernelMemoryBarrierFunc pLinuxKernelMemoryBarrier __attribute__((weak)) = -- (LinuxKernelMemoryBarrierFunc) 0xffff0fa0; -+inline void MemoryBarrier() { -+#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \ -+ defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) -+ __asm__ __volatile__("dmb ish" ::: "memory"); -+#elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || \ -+ defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || \ -+ defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) -+ __asm__ __volatile__("mcr p15,0,r0,c7,c10,5" ::: "memory"); -+#elif defined(__linux__) || defined(__ANDROID__) -+ // Note: This is a function call, which is also an implicit compiler barrier. -+ typedef void (*KernelMemoryBarrierFunc)(); -+ ((KernelMemoryBarrierFunc)0xffff0fa0)(); -+#error MemoryBarrier() is not implemented on this platform. -+#endif -+} - -+// An ARM toolchain would only define one of these depending on which -+// variant of the target architecture is being used. This tests against -+// any known ARMv6 or ARMv7 variant, where it is possible to directly -+// use ldrex/strex instructions to implement fast atomic operations. -+#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \ -+ defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || \ -+ defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || \ -+ defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || \ -+ defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) - - inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr, - Atomic32 old_value, - Atomic32 new_value) { -- Atomic32 prev_value = *ptr; -+ Atomic32 prev_value; -+ int reloop; - do { -- if (!pLinuxKernelCmpxchg(old_value, new_value, -- const_cast(ptr))) { -- return old_value; -- } -- prev_value = *ptr; -- } while (prev_value == old_value); -+ // The following is equivalent to: -+ // -+ // prev_value = LDREX(ptr) -+ // reloop = 0 -+ // if (prev_value != old_value) -+ // reloop = STREX(ptr, new_value) -+ __asm__ __volatile__(" ldrex %0, [%3]\n" -+ " mov %1, #0\n" -+ " cmp %0, %4\n" -+#ifdef __thumb2__ -+ " it eq\n" -+#endif -+ " strexeq %1, %5, [%3]\n" -+ : "=&r"(prev_value), "=&r"(reloop), "+m"(*ptr) -+ : "r"(ptr), "r"(old_value), "r"(new_value) -+ : "cc", "memory"); -+ } while (reloop != 0); - return prev_value; - } - -+inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr, -+ Atomic32 old_value, -+ Atomic32 new_value) { -+ Atomic32 result = NoBarrier_CompareAndSwap(ptr, old_value, new_value); -+ MemoryBarrier(); -+ return result; -+} -+ -+inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr, -+ Atomic32 old_value, -+ Atomic32 new_value) { -+ MemoryBarrier(); -+ return NoBarrier_CompareAndSwap(ptr, old_value, new_value); -+} -+ -+inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr, -+ Atomic32 increment) { -+ Atomic32 value; -+ int reloop; -+ do { -+ // Equivalent to: -+ // -+ // value = LDREX(ptr) -+ // value += increment -+ // reloop = STREX(ptr, value) -+ // -+ __asm__ __volatile__(" ldrex %0, [%3]\n" -+ " add %0, %0, %4\n" -+ " strex %1, %0, [%3]\n" -+ : "=&r"(value), "=&r"(reloop), "+m"(*ptr) -+ : "r"(ptr), "r"(increment) -+ : "cc", "memory"); -+ } while (reloop); -+ return value; -+} -+ -+inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr, -+ Atomic32 increment) { -+ // TODO(digit): Investigate if it's possible to implement this with -+ // a single MemoryBarrier() operation between the LDREX and STREX. -+ // See http://crbug.com/246514 -+ MemoryBarrier(); -+ Atomic32 result = NoBarrier_AtomicIncrement(ptr, increment); -+ MemoryBarrier(); -+ return result; -+} -+ - inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr, - Atomic32 new_value) { - Atomic32 old_value; -+ int reloop; - do { -+ // old_value = LDREX(ptr) -+ // reloop = STREX(ptr, new_value) -+ __asm__ __volatile__(" ldrex %0, [%3]\n" -+ " strex %1, %4, [%3]\n" -+ : "=&r"(old_value), "=&r"(reloop), "+m"(*ptr) -+ : "r"(ptr), "r"(new_value) -+ : "cc", "memory"); -+ } while (reloop != 0); -+ return old_value; -+} -+ -+// This tests against any known ARMv5 variant. -+#elif defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || \ -+ defined(__ARM_ARCH_5TE__) || defined(__ARM_ARCH_5TEJ__) -+ -+// The kernel also provides a helper function to perform an atomic -+// compare-and-swap operation at the hard-wired address 0xffff0fc0. -+// On ARMv5, this is implemented by a special code path that the kernel -+// detects and treats specially when thread pre-emption happens. -+// On ARMv6 and higher, it uses LDREX/STREX instructions instead. -+// -+// Note that this always perform a full memory barrier, there is no -+// need to add calls MemoryBarrier() before or after it. It also -+// returns 0 on success, and 1 on exit. -+// -+// Available and reliable since Linux 2.6.24. Both Android and ChromeOS -+// use newer kernel revisions, so this should not be a concern. -+namespace { -+ -+inline int LinuxKernelCmpxchg(Atomic32 old_value, -+ Atomic32 new_value, -+ volatile Atomic32* ptr) { -+ typedef int (*KernelCmpxchgFunc)(Atomic32, Atomic32, volatile Atomic32*); -+ return ((KernelCmpxchgFunc)0xffff0fc0)(old_value, new_value, ptr); -+} -+ -+} // namespace -+ -+inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr, -+ Atomic32 old_value, -+ Atomic32 new_value) { -+ Atomic32 prev_value; -+ for (;;) { -+ prev_value = *ptr; -+ if (prev_value != old_value) -+ return prev_value; -+ if (!LinuxKernelCmpxchg(old_value, new_value, ptr)) -+ return old_value; -+ } -+} -+ -+inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr, -+ Atomic32 new_value) { -+ Atomic32 old_value; -+ do { - old_value = *ptr; -- } while (pLinuxKernelCmpxchg(old_value, new_value, -- const_cast(ptr))); -+ } while (LinuxKernelCmpxchg(old_value, new_value, ptr)); - return old_value; - } - -@@ -63,36 +237,57 @@ - // Atomic exchange the old value with an incremented one. - Atomic32 old_value = *ptr; - Atomic32 new_value = old_value + increment; -- if (pLinuxKernelCmpxchg(old_value, new_value, -- const_cast(ptr)) == 0) { -+ if (!LinuxKernelCmpxchg(old_value, new_value, ptr)) { - // The exchange took place as expected. - return new_value; - } - // Otherwise, *ptr changed mid-loop and we need to retry. - } -- - } - - inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr, - Atomic32 old_value, - Atomic32 new_value) { -- return NoBarrier_CompareAndSwap(ptr, old_value, new_value); -+ Atomic32 prev_value; -+ for (;;) { -+ prev_value = *ptr; -+ if (prev_value != old_value) { -+ // Always ensure acquire semantics. -+ MemoryBarrier(); -+ return prev_value; -+ } -+ if (!LinuxKernelCmpxchg(old_value, new_value, ptr)) -+ return old_value; -+ } - } - - inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr, - Atomic32 old_value, - Atomic32 new_value) { -- return NoBarrier_CompareAndSwap(ptr, old_value, new_value); -+ // This could be implemented as: -+ // MemoryBarrier(); -+ // return NoBarrier_CompareAndSwap(); -+ // -+ // But would use 3 barriers per succesful CAS. To save performance, -+ // use Acquire_CompareAndSwap(). Its implementation guarantees that: -+ // - A succesful swap uses only 2 barriers (in the kernel helper). -+ // - An early return due to (prev_value != old_value) performs -+ // a memory barrier with no store, which is equivalent to the -+ // generic implementation above. -+ return Acquire_CompareAndSwap(ptr, old_value, new_value); - } - -+#else -+# error "Your CPU's ARM architecture is not supported yet" -+#endif -+ -+// NOTE: Atomicity of the following load and store operations is only -+// guaranteed in case of 32-bit alignement of |ptr| values. -+ - inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) { - *ptr = value; - } - --inline void MemoryBarrier() { -- pLinuxKernelMemoryBarrier(); --} -- - inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) { - *ptr = value; - MemoryBarrier(); -@@ -103,9 +298,7 @@ - *ptr = value; - } - --inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) { -- return *ptr; --} -+inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) { return *ptr; } - - inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) { - Atomic32 value = *ptr; -@@ -118,7 +311,6 @@ - return *ptr; - } - --} // namespace base::subtle --} // namespace base -+} } // namespace base::subtle - - #endif // BASE_ATOMICOPS_INTERNALS_ARM_GCC_H_ diff --git a/community/firefox/fix-fortify-inline.patch b/community/firefox/fix-fortify-inline.patch deleted file mode 100644 index 2498c57fc7..0000000000 --- a/community/firefox/fix-fortify-inline.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/media/webrtc/signaling/src/sdp/sipcc/sdp_os_defs.h -+++ b/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/community/firefox/fix-fortify-system-wrappers.patch b/community/firefox/fix-fortify-system-wrappers.patch deleted file mode 100644 index c966f31f9d..0000000000 --- a/community/firefox/fix-fortify-system-wrappers.patch +++ /dev/null @@ -1,13 +0,0 @@ -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.orig -+++ ./config/system-headers -@@ -422,7 +422,6 @@ - extras.h - fabdef.h - fcntl.h --features.h - fibdef.h - File.h - filehdr.h diff --git a/community/firefox/fix-ipc.patch b/community/firefox/fix-ipc.patch deleted file mode 100644 index 8371957d4b..0000000000 --- a/community/firefox/fix-ipc.patch +++ /dev/null @@ -1,55 +0,0 @@ ---- mozilla-release.orig/ipc/chromium/src/base/file_util.h -+++ mozilla-release/ipc/chromium/src/base/file_util.h -@@ -14,10 +14,15 @@ - #include - #elif defined(ANDROID) - #include -+#define NO_FTS - #elif defined(OS_POSIX) - #include --#include - #include -+#ifdef __GLIBC__ -+#include -+#else -+#define NO_FTS -+#endif - #endif - - #include ---- mozilla-release.orig/ipc/chromium/src/base/file_util_posix.cc -+++ mozilla-release/ipc/chromium/src/base/file_util_posix.cc -@@ -8,13 +8,13 @@ - #include - #include - #include --#ifndef ANDROID -+#ifndef NO_FTS - #include - #endif - #include - #include - #include --#include -+#include - #include - #define _DARWIN_USE_64_BIT_INODE // Use 64-bit inode data structures - #include -@@ -67,7 +67,7 @@ - if (!recursive) - return (rmdir(path_str) == 0); - --#ifdef ANDROID -+#ifdef NO_FTS - // XXX Need ftsless impl for bionic - return false; - #else -@@ -140,7 +140,7 @@ - return false; - } - --#ifdef ANDROID -+#ifdef NO_FTS - // XXX Need ftsless impl for bionic - return false; - #else diff --git a/community/firefox/fix-linux-include.patch b/community/firefox/fix-linux-include.patch deleted file mode 100644 index d625557cf9..0000000000 --- a/community/firefox/fix-linux-include.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- ./xpcom/io/nsLocalFileUnix.cpp.orig -+++ ./xpcom/io/nsLocalFileUnix.cpp -@@ -28,6 +28,7 @@ - #define USE_LINUX_QUOTACTL - #include - #include -+#include - #endif - - #include "xpcom-private.h" diff --git a/community/firefox/fix-media.patch b/community/firefox/fix-media.patch deleted file mode 100644 index af6045fe72..0000000000 --- a/community/firefox/fix-media.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- mozilla-release/media.orig/mtransport/third_party/nICEr/src/stun/addrs.c -+++ mozilla-release/media/mtransport/third_party/nICEr/src/stun/addrs.c -@@ -45,7 +45,6 @@ - #include - #include - #ifndef ANDROID --#include - #include - #else - #include diff --git a/community/firefox/fix-netwerk.patch b/community/firefox/fix-netwerk.patch deleted file mode 100644 index a31b286229..0000000000 --- a/community/firefox/fix-netwerk.patch +++ /dev/null @@ -1,37 +0,0 @@ ---- ./netwerk.orig/sctp/src/netinet/sctp_os_userspace.h -+++ ./netwerk/sctp/src/netinet/sctp_os_userspace.h -@@ -400,11 +400,8 @@ - }; - - #else /* !defined(Userspace_os_Windows) */ --#include /* needed? added from old __FreeBSD__ */ - #include --#if defined(__Userspace_os_DragonFly) || defined(__Userspace_os_FreeBSD) || defined(__Userspace_os_Linux) || defined(__Userspace_os_NetBSD) || defined(__Userspace_os_OpenBSD) || defined(ANDROID) - #include --#endif - typedef pthread_mutex_t userland_mutex_t; - typedef pthread_cond_t userland_cond_t; - typedef pthread_t userland_thread_t; ---- ./netwerk.orig/sctp/src/netinet/sctp_pcb.c -+++ ./netwerk/sctp/src/netinet/sctp_pcb.c -@@ -30,6 +30,9 @@ - * THE POSSIBILITY OF SUCH DAMAGE. - */ - -+#define _BSD_SOURCE /* for IPPORT_RESERVED */ -+#include -+ - #ifdef __FreeBSD__ - #include - __FBSDID("$FreeBSD: head/sys/netinet/sctp_pcb.c 258765 2013-11-30 12:51:19Z tuexen $"); ---- ./netwerk.orig/sctp/src/user_queue.h -+++ ./netwerk/sctp/src/user_queue.h -@@ -31,7 +31,7 @@ - #ifndef _USER_QUEUE_H_ - #define _USER_QUEUE_H_ - --#if !defined (__Userspace_os_Windows) -+#if defined(__Userspace_os_FreeBSD) - #include - #endif - /* diff --git a/community/firefox/fix-toolkit.patch b/community/firefox/fix-toolkit.patch deleted file mode 100644 index 0303223652..0000000000 --- a/community/firefox/fix-toolkit.patch +++ /dev/null @@ -1,151 +0,0 @@ -diff -ru mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc mozilla-release/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc ---- mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc 2014-03-15 05:19:36.000000000 +0000 -+++ mozilla-release/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 -diff -ru mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.cc mozilla-release/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc ---- mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.cc 2014-03-15 05:19:36.000000000 +0000 -+++ mozilla-release/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 { -diff -ru mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.h mozilla-release/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h ---- mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/common/stabs_reader.h 2014-03-15 05:19:36.000000000 +0000 -+++ mozilla-release/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.h 2014-04-17 10:24:33.793431933 +0000 -@@ -53,9 +53,10 @@ - #include - #endif - --#ifdef HAVE_A_OUT_H -+#if 0 - #include - #endif -+ - #ifdef HAVE_MACH_O_NLIST_H - #include - #endif -diff -ru mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h mozilla-release/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h ---- mozilla-release/toolkit.orig/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h 2014-03-15 05:19:37.000000000 +0000 -+++ mozilla-release/toolkit/crashreporter/google-breakpad/src/third_party/lss/linux_syscall_support.h 2014-04-17 10:24:33.793431933 +0000 -@@ -2813,7 +2813,7 @@ - LSS_INLINE _syscall6(void*, mmap, void*, s, - size_t, l, int, p, - int, f, int, d, -- __off64_t, o) -+ off_t, o) - - LSS_INLINE _syscall4(int, newfstatat, int, d, - const char *, p, -diff -ru mozilla-release/toolkit.orig/mozapps/update/common/updatedefines.h mozilla-release/toolkit/mozapps/update/common/updatedefines.h ---- mozilla-release/toolkit.orig/mozapps/update/common/updatedefines.h 2014-03-15 05:19:37.000000000 +0000 -+++ mozilla-release/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 -diff -ru mozilla-release/toolkit.orig/mozapps/update/updater/updater.cpp mozilla-release/toolkit/mozapps/update/updater/updater.cpp ---- mozilla-release/toolkit.orig/mozapps/update/updater/updater.cpp 2014-03-15 05:19:37.000000000 +0000 -+++ mozilla-release/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 -ru mozilla-release/toolkit.orig/xre/nsSigHandlers.cpp mozilla-release/toolkit/xre/nsSigHandlers.cpp ---- mozilla-release/toolkit.orig/xre/nsSigHandlers.cpp 2014-03-15 05:19:38.000000000 +0000 -+++ mozilla-release/toolkit/xre/nsSigHandlers.cpp 2014-04-17 10:24:33.796765327 +0000 -@@ -15,6 +15,7 @@ - #include - #include - #include -+#include - #include "prthread.h" - #include "plstr.h" - #include "prenv.h" -@@ -152,7 +153,7 @@ - status->__invalid = status->__denorm = status->__zdiv = status->__ovrfl = status->__undfl = - status->__precis = status->__stkflt = status->__errsumm = 0; - -- __uint32_t *mxcsr = &uc->uc_mcontext->__fs.__fpu_mxcsr; -+ u_int32_t *mxcsr = &uc->uc_mcontext->__fs.__fpu_mxcsr; - *mxcsr |= SSE_EXCEPTION_MASK; /* disable all SSE exceptions */ - *mxcsr &= ~SSE_STATUS_FLAGS; /* clear all pending SSE exceptions */ - #endif -@@ -172,13 +173,13 @@ - *sw &= ~FPU_STATUS_FLAGS; - #endif - #if defined(__amd64__) -- __uint16_t *cw = &uc->uc_mcontext.fpregs->cwd; -+ u_int16_t *cw = &uc->uc_mcontext.fpregs->cwd; - *cw |= FPU_EXCEPTION_MASK; - -- __uint16_t *sw = &uc->uc_mcontext.fpregs->swd; -+ u_int16_t *sw = &uc->uc_mcontext.fpregs->swd; - *sw &= ~FPU_STATUS_FLAGS; - -- __uint32_t *mxcsr = &uc->uc_mcontext.fpregs->mxcsr; -+ u_int32_t *mxcsr = &uc->uc_mcontext.fpregs->mxcsr; - *mxcsr |= SSE_EXCEPTION_MASK; /* disable all SSE exceptions */ - *mxcsr &= ~SSE_STATUS_FLAGS; /* clear all pending SSE exceptions */ - #endif -@@ -187,24 +188,24 @@ - ucontext_t *uc = (ucontext_t *)context; - - #if defined(__i386) -- uint32_t *cw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.state[0]; -+ u_int32_t *cw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.state[0]; - *cw |= FPU_EXCEPTION_MASK; - -- uint32_t *sw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.state[1]; -+ u_int32_t *sw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.state[1]; - *sw &= ~FPU_STATUS_FLAGS; - - /* address of the instruction that caused the exception */ -- uint32_t *ip = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.state[3]; -+ u_int32_t *ip = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.state[3]; - uc->uc_mcontext.gregs[REG_PC] = *ip; - #endif - #if defined(__amd64__) -- uint16_t *cw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.cw; -+ u_int16_t *cw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.cw; - *cw |= FPU_EXCEPTION_MASK; - -- uint16_t *sw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.sw; -+ u_int16_t *sw = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.sw; - *sw &= ~FPU_STATUS_FLAGS; - -- uint32_t *mxcsr = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.mxcsr; -+ u_int32_t *mxcsr = &uc->uc_mcontext.fpregs.fp_reg_set.fpchip_state.mxcsr; - *mxcsr |= SSE_EXCEPTION_MASK; /* disable all SSE exceptions */ - *mxcsr &= ~SSE_STATUS_FLAGS; /* clear all pending SSE exceptions */ - #endif diff --git a/community/firefox/fix-tools.patch b/community/firefox/fix-tools.patch deleted file mode 100644 index b0a6d4fbcc..0000000000 --- a/community/firefox/fix-tools.patch +++ /dev/null @@ -1,49 +0,0 @@ ---- mozilla-release.orig/tools/profiler/local_debug_info_symbolizer.cc -+++ mozilla-release/tools/profiler/local_debug_info_symbolizer.cc -@@ -3,6 +3,7 @@ - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -+#include - #include "PlatformMacros.h" - #include "nsAutoPtr.h" - ---- mozilla-release.orig/tools/profiler/platform-linux.cc -+++ mozilla-release/tools/profiler/platform-linux.cc -@@ -84,7 +84,7 @@ - - #define SIGNAL_SAVE_PROFILE SIGUSR2 - --#if defined(__GLIBC__) -+#if 1 - // glibc doesn't implement gettid(2). - #include - pid_t gettid() ---- mozilla-release.orig/tools/profiler/platform.h -+++ mozilla-release/tools/profiler/platform.h -@@ -29,6 +29,8 @@ - #ifndef TOOLS_PLATFORM_H_ - #define TOOLS_PLATFORM_H_ - -+#include -+ - #ifdef ANDROID - #include - #else ---- mozilla-release.orig/tools/profiler/LulElf.cpp -+++ mozilla-release/tools/profiler/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; - } - diff --git a/community/firefox/getchar.patch b/community/firefox/getchar.patch deleted file mode 100644 index 981206b971..0000000000 --- a/community/firefox/getchar.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- ./media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp.orig -+++ ./media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp -@@ -21,6 +21,11 @@ - #include "constants.hpp" - #include - -+/* prevent the getchar macro from stdio to take preference over the local var */ -+#if defined(__UCLIBC__) -+#undef getchar -+#endif -+ - namespace boost { - namespace detail { - //This only works on unsigned data types diff --git a/community/firefox/mozconfig b/community/firefox/mozconfig deleted file mode 100644 index 8fbbf3d6e6..0000000000 --- a/community/firefox/mozconfig +++ /dev/null @@ -1,54 +0,0 @@ -. $topsrcdir/browser/config/mozconfig - -ac_add_options --prefix=/usr -ac_add_options --libdir=/usr/lib - -ac_add_options --with-pthreads -ac_add_options --with-system-bz2 -ac_add_options --with-system-icu -ac_add_options --with-system-jpeg -ac_add_options --with-system-libevent -ac_add_options --with-system-libvpx -ac_add_options --with-system-nspr -ac_add_options --with-system-nss -ac_add_options --with-system-pixman -ac_add_options --with-system-png -ac_add_options --with-system-zlib - -ac_add_options --enable-system-hunspell -ac_add_options --enable-system-sqlite -ac_add_options --enable-system-cairo -ac_add_options --enable-system-ffi - -# make the -dbg package more meaningful with symbols -# ac_add_options --enable-debug-symbols=-g -ac_add_options --disable-install-strip - -ac_add_options --enable-gstreamer=1.0 -ac_add_options --enable-official-branding -ac_add_options --enable-optimize="$CFLAGS" -ac_add_options --enable-startup-notification - -ac_add_options --disable-cpp-exceptions -ac_add_options --disable-crashreporter -ac_add_options --disable-elf-hack -ac_add_options --disable-gnomevfs -ac_add_options --disable-installer -ac_add_options --disable-javaxpcom -ac_add_options --disable-jemalloc -ac_add_options --disable-mochitest -ac_add_options --disable-pulseaudio -ac_add_options --disable-static -ac_add_options --disable-strip -ac_add_options --disable-tests -ac_add_options --disable-updater -ac_add_options --disable-xprint - -export BUILD_OFFICIAL=1 -export MOZILLA_OFFICIAL=1 -export USE_SHORT_LIBNAME=1 - -mk_add_options BUILD_OFFICIAL=1 -mk_add_options MOZILLA_OFFICIAL=1 -mk_add_options USE_SHORT_LIBNAME=1 -mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir diff --git a/community/firefox/mozilla-build-arm.patch b/community/firefox/mozilla-build-arm.patch deleted file mode 100644 index dcf2f6d8a4..0000000000 --- a/community/firefox/mozilla-build-arm.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./gfx/ycbcr/moz.build.orig 2014-04-03 13:50:38.990296661 +0000 -+++ ./gfx/ycbcr/moz.build 2014-04-03 13:52:26.878268547 +0000 -@@ -59,7 +59,7 @@ - 'yuv_row_other.cpp', - ] - --if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['HAVE_ARM_NEON']: -+if CONFIG['HAVE_ARM_NEON']: - SOURCES += [ - 'yuv_row_arm.s', - ] diff --git a/community/firefox/rhbz-966424.patch b/community/firefox/rhbz-966424.patch deleted file mode 100644 index 2be9f931a6..0000000000 --- a/community/firefox/rhbz-966424.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff -up firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm.966424 firefox-33.0/mozilla-release/toolkit/modules/CertUtils.jsm ---- mozilla-release/toolkit/modules/CertUtils.jsm.966424 2014-10-14 08:12:14.358697255 +0200 -+++ mozilla-release/toolkit/modules/CertUtils.jsm 2014-10-14 08:17:59.962181908 +0200 -@@ -174,7 +174,9 @@ this.checkCert = - } - - function isBuiltinToken(tokenName) { -- return tokenName == "Builtin Object Token"; -+ return tokenName == "Builtin Object Token" || -+ tokenName == "Default Trust" || -+ tokenName == "System Trust"; - } - - /** diff --git a/community/firefox/stab.h b/community/firefox/stab.h deleted file mode 100644 index 6f70af3989..0000000000 --- a/community/firefox/stab.h +++ /dev/null @@ -1,71 +0,0 @@ -/* $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/community/firefox/stat.patch b/community/firefox/stat.patch deleted file mode 100644 index ed7dc007e2..0000000000 --- a/community/firefox/stat.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- ./dom/system/OSFileConstants.cpp.orig 2013-04-17 06:17:29.798371189 +0000 -+++ ./dom/system/OSFileConstants.cpp 2013-04-17 06:30:30.032285977 +0000 -@@ -509,6 +509,11 @@ - INT_CONSTANT(_STAT_VER), - #endif // defined(_STAT_VER) - -+ // glibc's stat/lstat/fstat are macros while uclibc's are not -+#if defined(__GLIBC__) && !defined(__UCLIBC__) -+ { "OSFILE_STAT_MACROS", INT_TO_JSVAL(1) }, -+#endif // defined(stat) -+ - PROP_END - }; - ---- ./toolkit/components/osfile/modules/osfile_unix_back.jsm.orig 2014-04-03 13:08:26.686409787 +0000 -+++ ./toolkit/components/osfile/modules/osfile_unix_back.jsm 2014-04-03 13:34:14.101716259 +0000 -@@ -512,7 +512,7 @@ - /*path*/ Type.fd, - /*buf*/ Type.stat.out_ptr - ); -- } else if (Const._STAT_VER != undefined) { -+ } else if (Const.OSFILE_STAT_MACROS != undefined) { - const ver = Const._STAT_VER; - let xstat_name, lxstat_name, fxstat_name; - if (OS.Constants.Sys.Name == "SunOS") { diff --git a/community/firefox/vendor.js b/community/firefox/vendor.js deleted file mode 100644 index 2ef8b0d5b2..0000000000 --- a/community/firefox/vendor.js +++ /dev/null @@ -1,3 +0,0 @@ -// Disable default browser checking. -pref("browser.shell.checkDefaultBrowser", false); - -- cgit v1.2.3