1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
7 SDESC[standard]= Mozilla web browser
8 HOMEPAGE= https://www.mozilla.org/en-US/firefox/
9 CONTACT= Leonid_Bobrov[mazocomp@disroot.org]
12 SITES[main]= MOZILLA/firefox/releases/66.0.3/source
13 DISTFILE[1]= firefox-66.0.3.source.tar.xz:main
15 SPKGS[standard]= single
17 OPTIONS_AVAILABLE= none
18 OPTIONS_STANDARD= none
20 BUILD_DEPENDS= autoconf213:single:standard
22 cbindgen:single:standard
23 nodejs:primary:standard
24 python-sqlite3:single:py27
28 clang:compiler:standard
29 BUILDRUN_DEPENDS= bzip2:shared:standard
30 dbus-glib:primary:standard
31 ffmpeg:primary:standard
32 harfbuzz:primary:standard
34 libcanberra:primary:standard
35 libevent:single:standard
36 libffi:single:standard
37 libnotify:primary:standard
38 libproxy:single:standard
40 sqlite:single:standard
41 startup-notification:single:standard
43 USES= cpe desktop-utils:single gmake jpeg perl:build
44 pkgconfig png python:py27 zlib
45 GNOME_COMPONENTS= gconf gdkpixbuf gtk2 gtk3
46 XORG_COMPONENTS= pixman xcb
49 LICENSE_TERMS= single:{{WRKSRC}}/toolkit/content/license.html
50 LICENSE_FILE= MPL:stock
54 FPC_EQUIVALENT= www/firefox
57 CONFIGURE_OUTSOURCE= yes
59 SUB_FILES= pkg-install-single
61 SUB_LIST= MOZILLA=firefox
62 MOZILLA_BIN=firefox-bin
64 MOZDIR={{PREFIX}}/lib/firefox
66 QMAKE_ARGS= --enable-application=browser
67 --enable-chrome-format=omni
68 --enable-default-toolkit=cairo-gtk3
70 --enable-install-strip
71 --enable-official-branding
74 --enable-startup-notification
78 --enable-system-pixman
79 --enable-system-sqlite
82 --disable-debug-symbols
94 --with-system-graphite2
95 --with-system-harfbuzz
97 --with-system-jpeg="{{LOCALBASE}}"
98 --with-system-libevent
101 --with-system-png="{{LOCALBASE}}"
103 VAR_OPSYS[freebsd]= CONFIGURE_ARGS=--enable-jemalloc
104 VAR_OPSYS[linux]= QMAKE_ARGS=--disable-elf-hack
107 ${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
108 ${WRKSRC}/browser/app/nsBrowserApp.cpp
109 ${REINPLACE_CMD} -e 's/%u/%U/' -e '/X-MultipleArgs/d' \
110 -e '/^Icon/s/=.*/=firefox/' \
111 ${WRKSRC}/taskcluster/docker/firefox-snap/firefox.desktop
112 (cd ${WRKSRC}/gfx/angle/checkout/src/compiler/translator && \
113 ${REINPLACE_CMD} -e 's|<math.h>|<cmath>|' \
114 InfoSink.h IntermNode.cpp)
116 ${REINPLACE_CMD} -e 's|MOZ_SCTP|MOZ_DISABLE_SCTP|' \
117 ${WRKSRC}/netwerk/moz.build
118 # Set mozilla options
119 @${ECHO_CMD} "--=> Setting configuration <=--"
120 @for arg in ${QMAKE_ARGS}; do \
121 ${ECHO_CMD} ".mozconfig << $$arg" ;\
122 ${ECHO_CMD} ac_add_options $$arg >> ${WRKSRC}/.mozconfig ;\
124 @${ECHO_CMD} LDFLAGS=\"-Wl,-rpath,${PREFIX}/lib/firefox\" \
125 >> ${WRKSRC}/.mozconfig
128 @${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps \
129 ${STAGEDIR}${PREFIX}/share/applications
130 ${INSTALL_DATA} ${WRKSRC}/taskcluster/docker/firefox-snap/firefox.desktop \
131 ${STAGEDIR}${PREFIX}/share/applications/
132 ${LN} -sf ${PREFIX}/lib/firefox/browser/chrome/icons/default/default48.png \
133 ${STAGEDIR}${PREFIX}/share/pixmaps/firefox.png
136 (cd ${WRKSRC} && ${LOCALBASE}/bin/autoconf-2.13)
137 (cd ${WRKSRC}/js/src/ && ${LOCALBASE}/bin/autoconf-2.13)
139 [FILE:527:descriptions/desc.single]
140 Firefox is a full-featured standard-compliant web browser, built on the
141 Mozilla codebase by thousands of contributors around the world.
142 It is extensible through thousands of user-contributed extensions, and
145 * Improved Tabbed Browsing, with tab grouping;
148 * Search Suggestions;
155 * Phishing Protection;
157 * Search Engine Manager.
161 1fe4cfe4f4afce8d5532da8f36a48c333750c90a6ee67167309357edf514c22a 281164936 firefox-66.0.3.source.tar.xz
164 [FILE:1003:manifests/plist.single]
165 %%ONLY-LINUX%%lib/firefox/
171 %%ONLY-LINUX%%lib/firefox/browser/crashreporter-override.ini
172 %%ONLY-LINUX%%lib/firefox/fonts/EmojiOneMozilla.ttf
194 lib/firefox/browser/chrome/icons/default/
200 lib/firefox/browser/features/
201 formautofill@mozilla.org.xpi
202 screenshots@mozilla.org.xpi
203 webcompat-reporter@mozilla.org.xpi
204 webcompat@mozilla.org.xpi
205 lib/firefox/defaults/pref/channel-prefs.js
206 lib/firefox/gmp-clearkey/0.1/
209 lib/firefox/gtk2/libmozgtk.so
210 share/applications/firefox.desktop
211 share/pixmaps/firefox.png
214 [FILE:4614:patches/patch-addon-search]
215 https://github.com/mozilla/addons/issues/708
216 https://github.com/mozilla/addons-frontend/issues/4610
218 diff --git browser/app/profile/firefox.js browser/app/profile/firefox.js
219 index 75c2c5e435e35..4d8c09c02759b 100644
220 --- browser/app/profile/firefox.js.orig 2019-03-26 21:19:42 UTC
221 +++ browser/app/profile/firefox.js
222 @@ -40,8 +40,8 @@ pref("extensions.webextOptionalPermissio
223 pref("extensions.getAddons.cache.enabled", true);
224 pref("extensions.getAddons.get.url", "https://services.addons.mozilla.org/api/v3/addons/search/?guid=%IDS%&lang=%LOCALE%");
225 pref("extensions.getAddons.compatOverides.url", "https://services.addons.mozilla.org/api/v3/addons/compat-override/?guid=%IDS%&lang=%LOCALE%");
226 -pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/firefox/search?q=%TERMS%&platform=%OS%&appver=%VERSION%");
227 -pref("extensions.webservice.discoverURL", "https://discovery.addons.mozilla.org/%LOCALE%/firefox/discovery/pane/%VERSION%/%OS%/%COMPATIBILITY_MODE%");
228 +pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/firefox/search?q=%TERMS%&platform=Linux&appver=%VERSION%");
229 +pref("extensions.webservice.discoverURL", "https://discovery.addons.mozilla.org/%LOCALE%/firefox/discovery/pane/%VERSION%/Linux/%COMPATIBILITY_MODE%");
230 pref("extensions.getAddons.link.url", "https://addons.mozilla.org/%LOCALE%/firefox/");
231 pref("extensions.getAddons.langpacks.url", "https://services.addons.mozilla.org/api/v3/addons/language-tools/?app=firefox&type=language&appversion=%VERSION%");
233 @@ -181,8 +181,8 @@ pref("app.update.service.enabled", true)
236 pref("extensions.update.enabled", true);
237 -pref("extensions.update.url", "https://versioncheck.addons.mozilla.org/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%");
238 -pref("extensions.update.background.url", "https://versioncheck-bg.addons.mozilla.org/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%");
239 +pref("extensions.update.url", "https://versioncheck.addons.mozilla.org/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=Linux&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%");
240 +pref("extensions.update.background.url", "https://versioncheck-bg.addons.mozilla.org/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=Linux&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%");
241 pref("extensions.update.interval", 86400); // Check for updates to Extensions and
244 --- toolkit/mozapps/extensions/internal/AddonRepository.jsm.orig 2019-03-26 21:19:52 UTC
245 +++ toolkit/mozapps/extensions/internal/AddonRepository.jsm
246 @@ -610,7 +610,7 @@ var AddonRepository = {
247 addon.version = String(aEntry.current_version.version);
248 if (Array.isArray(aEntry.current_version.files)) {
249 for (let file of aEntry.current_version.files) {
250 - if (file.platform == "all" || file.platform == PLATFORM) {
251 + if (file.platform == "all" || file.platform == "linux" || file.platform == PLATFORM) {
253 addon.sourceURI = NetUtil.newURI(file.url);
255 --- toolkit/mozapps/extensions/internal/XPIDatabase.jsm.orig 2019-03-26 21:19:52 UTC
256 +++ toolkit/mozapps/extensions/internal/XPIDatabase.jsm
257 @@ -397,7 +397,7 @@ class AddonInternal {
258 // Something is causing errors in here
260 for (let platform of this.targetPlatforms) {
261 - if (platform.os == Services.appinfo.OS) {
262 + if (platform.os == "Linux" || platform.os == Services.appinfo.OS) {
265 if (platform.abi === abi)
268 [FILE:423:patches/patch-browser-app-nsBrowserApp.cpp]
269 --- browser/app/nsBrowserApp.cpp.orig 2019-03-26 21:19:42 UTC
270 +++ browser/app/nsBrowserApp.cpp
271 @@ -275,6 +275,9 @@ int main(int argc, char* argv[], char* e
275 + setenv("MOZ_GMP_PATH", "%%LOCALBASE%%/lib/browser_plugins/symlinks/gecko", 0);
276 + setenv("MOZ_PLUGIN_PATH", "%%LOCALBASE%%/lib/browser_plugins/symlinks/gecko", 0);
278 #ifdef HAS_DLL_BLOCKLIST
279 DllBlocklist_Initialize(gBlocklistInitFlags);
283 [FILE:2829:patches/patch-bug1288587]
284 diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
285 index 855214a..1e91d51 100644
286 --- build/moz.configure/init.configure
287 +++ build/moz.configure/init.configure
288 @@ -165,16 +165,17 @@ option(env='PYTHON', nargs=1, help='Python interpreter')
289 # ==============================================================
290 @depends('PYTHON', check_build_environment, mozconfig, '--help')
293 @imports('subprocess')
294 @imports(_from='mozbuild.configure.util', _import='LineIO')
295 @imports(_from='mozbuild.virtualenv', _import='VirtualenvManager')
296 @imports(_from='mozbuild.virtualenv', _import='verify_python_version')
297 +@imports(_from='__builtin__', _import='KeyError')
298 @imports('distutils.sysconfig')
299 def virtualenv_python(env_python, build_env, mozconfig, help):
303 python = env_python[0] if env_python else None
305 # Ideally we'd rely on the mozconfig injection from mozconfig_options,
306 @@ -184,16 +185,22 @@ def virtualenv_python(env_python, build_env, mozconfig, help):
307 if 'PYTHON' in mozconfig['env']['added']:
308 python = mozconfig['env']['added']['PYTHON']
309 elif 'PYTHON' in mozconfig['env']['modified']:
310 python = mozconfig['env']['modified']['PYTHON'][1]
311 elif 'PYTHON' in mozconfig['vars']['added']:
312 python = mozconfig['vars']['added']['PYTHON']
313 elif 'PYTHON' in mozconfig['vars']['modified']:
314 python = mozconfig['vars']['modified']['PYTHON'][1]
315 + for i in ('env', 'vars'):
316 + for j in ('added', 'modified'):
318 + del mozconfig[i][j]['PYTHON']
322 with LineIO(lambda l: log.error(l)) as out:
323 verify_python_version(out)
324 topsrcdir, topobjdir = build_env.topsrcdir, build_env.topobjdir
325 if topobjdir.endswith('/js/src'):
326 topobjdir = topobjdir[:-7]
328 with LineIO(lambda l: log.info(l)) as out:
329 @@ -255,17 +262,20 @@ def virtualenv_python(env_python, build_env, mozconfig
330 log.info('Creating Python environment')
331 manager.build(python)
333 python = normsep(manager.python_path)
335 if not normsep(sys.executable).startswith(normsep(virtualenvs_root)):
336 log.info('Reexecuting in the virtualenv')
338 - del os.environ['PYTHON']
340 + del os.environ['PYTHON']
343 # One would prefer to use os.execl, but that's completely borked on
345 sys.exit(subprocess.call([python] + sys.argv))
347 # We are now in the virtualenv
348 if not distutils.sysconfig.get_python_lib():
349 die('Could not determine python site packages directory')
353 [FILE:1349:patches/patch-bug1507655]
354 Revert bug 1497976 as close_fds on Python 2 is too slow
356 diff --git build/moz.configure/util.configure build/moz.configure/util.configure
357 index 25862fee7c32..3fc725a5124e 100644
358 --- build/moz.configure/util.configure.orig 2019-03-26 21:19:42 UTC
359 +++ build/moz.configure/util.configure
360 @@ -22,7 +22,6 @@ def configure_error(message):
362 # A wrapper to obtain a process' output and return code.
363 # Returns a tuple (retcode, stdout, stderr).
365 @imports(_from='__builtin__', _import='unicode')
366 @imports('subprocess')
367 @imports(_from='mozbuild.shellutil', _import='quote')
368 @@ -45,13 +44,7 @@ def get_cmd_output(*args, **kwargs):
370 log.debug('Executing: `%s`', quote(*args))
371 proc = subprocess.Popen(args, stdout=subprocess.PIPE,
372 - stderr=subprocess.PIPE,
373 - # On Python 2 on Windows, close_fds prevents the
374 - # process from inheriting stdout/stderr.
375 - # Elsewhere, it simply prevents it from inheriting
376 - # extra file descriptors, which is what we want.
377 - close_fds=os.name != 'nt',
379 + stderr=subprocess.PIPE, **kwargs)
380 stdout, stderr = proc.communicate()
381 return proc.wait(), stdout, stderr
385 [FILE:20169:patches/patch-bug1514156]
387 Author: sotaro <sotaro.ikeda.g@gmail.com>
388 Date: Tue Feb 12 16:32:51 2019 +0900
390 Bug 1514156 - Add GLContextEGL::CreateEGLSurfaceForCompositorWidget() for Wayland r=jgilbert
392 When GDK_BACKEND is wayland, widget is not fully mapped during creating CompositorSession. During CompositorSession creation, GLContextProviderEGL::CreateForCompositorWidget() creates GLContextEGL, but we could not create valid EGLSurface. We could create valid EGLSurface when widget is fully mapped. CreateEGLSurfaceForCompositorWidget() is used for creating valid EGLSurface after widget is fully mapped.
394 Differential Revision: https://phabricator.services.mozilla.com/D18654
396 gfx/gl/GLContextEGL.h | 4 ++++
397 gfx/gl/GLContextProviderEGL.cpp | 27 +++++++++++++++++++++++++++
398 2 files changed, 31 insertions(+)
400 diff --git gfx/gl/GLContextEGL.h gfx/gl/GLContextEGL.h
401 index 95d5e0c02e23..adb37e59a9f7 100644
402 --- gfx/gl/GLContextEGL.h
403 +++ gfx/gl/GLContextEGL.h
404 @@ -91,6 +91,10 @@ class GLContextEGL : public GLContext {
405 CreateContextFlags flags, const gfx::IntSize& size,
406 const SurfaceCaps& minCaps, nsACString* const out_FailureId);
408 +#if defined(MOZ_WAYLAND)
409 + static EGLSurface CreateEGLSurfaceForCompositorWidget(
410 + widget::CompositorWidget* aCompositorWidget, bool aForceAccelerated);
413 friend class GLContextProviderEGL;
414 friend class GLContextEGLFactory;
415 diff --git gfx/gl/GLContextProviderEGL.cpp gfx/gl/GLContextProviderEGL.cpp
416 index 774eb34a8e87..25aa779a7d64 100644
417 --- gfx/gl/GLContextProviderEGL.cpp
418 +++ gfx/gl/GLContextProviderEGL.cpp
419 @@ -295,6 +295,33 @@ already_AddRefed<GLContext> GLContextEGLFactory::Create(
423 +#if defined(MOZ_WAYLAND)
424 +/* static */ EGLSurface GLContextEGL::CreateEGLSurfaceForCompositorWidget(
425 + widget::CompositorWidget* aCompositorWidget, bool aForceAccelerated) {
426 + nsCString discardFailureId;
427 + if (!GLLibraryEGL::EnsureInitialized(false, &discardFailureId)) {
428 + gfxCriticalNote << "Failed to load EGL library 6!";
429 + return EGL_NO_SURFACE;
432 + MOZ_ASSERT(aCompositorWidget);
433 + EGLNativeWindowType window = GET_NATIVE_WINDOW_FROM_COMPOSITOR_WIDGET(aCompositorWidget);
435 + gfxCriticalNote << "window is null";
436 + return EGL_NO_SURFACE;
438 + const bool useWebRender = aCompositorWidget->GetCompositorOptions().UseWebRender();
441 + if (!CreateConfig(&config, useWebRender)) {
442 + gfxCriticalNote << "Failed to create EGLConfig!";
443 + return EGL_NO_SURFACE;
446 + return mozilla::gl::CreateSurfaceFromNativeWindow(window, config);
450 GLContextEGL::GLContextEGL(CreateContextFlags flags, const SurfaceCaps& caps,
451 bool isOffscreen, EGLConfig config,
452 EGLSurface surface, EGLContext context)
455 Author: sotaro <sotaro.ikeda.g@gmail.com>
456 Date: Tue Feb 12 16:33:31 2019 +0900
458 Bug 1514156 - Add RenderCompositorEGL for wayland r=nical
460 When GDK_BACKEND is wayland, widget is not fully mapped during creating CompositorSession. Needs to create valid EGLSurface after widget is fully mapped.
462 Differential Revision: https://phabricator.services.mozilla.com/D18940
464 gfx/webrender_bindings/RenderCompositor.cpp | 12 +++
465 gfx/webrender_bindings/RenderCompositorEGL.cpp | 132 +++++++++++++++++++++++++
466 gfx/webrender_bindings/RenderCompositorEGL.h | 54 ++++++++++
467 gfx/webrender_bindings/moz.build | 10 ++
468 widget/gtk/CompositorWidgetChild.cpp | 6 ++
469 widget/gtk/CompositorWidgetChild.h | 4 +-
470 widget/gtk/CompositorWidgetParent.cpp | 8 ++
471 widget/gtk/CompositorWidgetParent.h | 2 +
472 widget/gtk/GtkCompositorWidget.cpp | 12 +++
473 widget/gtk/GtkCompositorWidget.h | 11 +++
474 widget/gtk/PCompositorWidget.ipdl | 1 +
475 widget/gtk/mozcontainer.cpp | 11 +++
476 widget/gtk/mozcontainer.h | 2 +
477 widget/gtk/nsWindow.cpp | 16 +++
478 widget/gtk/nsWindow.h | 1 +
479 15 files changed, 281 insertions(+), 1 deletion(-)
481 diff --git gfx/webrender_bindings/RenderCompositor.cpp gfx/webrender_bindings/RenderCompositor.cpp
482 index 051482fbabbf..a58268096a89 100644
483 --- gfx/webrender_bindings/RenderCompositor.cpp
484 +++ gfx/webrender_bindings/RenderCompositor.cpp
486 # include "mozilla/webrender/RenderCompositorANGLE.h"
490 +#include "mozilla/webrender/RenderCompositorEGL.h"
496 @@ -26,6 +30,14 @@ namespace wr {
497 return RenderCompositorANGLE::Create(std::move(aWidget));
502 + UniquePtr<RenderCompositor> eglCompositor = RenderCompositorEGL::Create(aWidget);
503 + if (eglCompositor) {
504 + return eglCompositor;
508 return RenderCompositorOGL::Create(std::move(aWidget));
511 diff --git gfx/webrender_bindings/RenderCompositorEGL.cpp gfx/webrender_bindings/RenderCompositorEGL.cpp
513 index 000000000000..16245f59afbd
515 +++ gfx/webrender_bindings/RenderCompositorEGL.cpp
517 +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
518 +/* vim: set ts=8 sts=2 et sw=2 tw=80: */
519 +/* This Source Code Form is subject to the terms of the Mozilla Public
520 + * License, v. 2.0. If a copy of the MPL was not distributed with this
521 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
523 +#include "RenderCompositorEGL.h"
525 +#include "GLContext.h"
526 +#include "GLContextEGL.h"
527 +#include "GLContextProvider.h"
528 +#include "GLLibraryEGL.h"
529 +#include "mozilla/widget/CompositorWidget.h"
530 +#include "mozilla/widget/GtkCompositorWidget.h"
532 +#include <gdk/gdk.h>
533 +#include <gdk/gdkx.h>
538 +/* static */ UniquePtr<RenderCompositor> RenderCompositorEGL::Create(
539 + RefPtr<widget::CompositorWidget> aWidget) {
541 + if (GDK_IS_X11_DISPLAY(gdk_display_get_default())) {
545 + RefPtr<gl::GLContext> gl;
546 + gl = CreateGLContext(aWidget);
550 + return MakeUnique<RenderCompositorEGL>(gl, aWidget);
553 +/* static */ already_AddRefed<gl::GLContext>
554 +RenderCompositorEGL::CreateGLContext(RefPtr<widget::CompositorWidget> aWidget) {
555 + nsCString discardFailureId;
557 + // Create GLContext with dummy EGLSurface.
558 + RefPtr<gl::GLContext> gl =
559 + //XXX headless context did not work.
560 + gl::GLContextProviderEGL::CreateForCompositorWidget(aWidget, true);
562 + gfxCriticalNote << "Failed GL context creation for WebRender: "
563 + << gfx::hexa(gl.get());
567 + if (!gl->MakeCurrent()) {
568 + gfxCriticalNote << "Failed GL context creation for WebRender: "
569 + << gfx::hexa(gl.get());
573 + return gl.forget();
576 +/* static */ EGLSurface RenderCompositorEGL::CreateEGLSurface(
577 + widget::CompositorWidget* aWidget) {
578 + EGLSurface surface = EGL_NO_SURFACE;
579 + surface = gl::GLContextEGL::CreateEGLSurfaceForCompositorWidget(
580 + aWidget, /* aForceAccelerated */ true);
581 + if (surface == EGL_NO_SURFACE) {
582 + gfxCriticalNote << "Failed to create EGLSurface";
587 +RenderCompositorEGL::RenderCompositorEGL(
588 + RefPtr<gl::GLContext> aGL, RefPtr<widget::CompositorWidget> aWidget)
589 + : RenderCompositor(std::move(aWidget)), mGL(aGL), mEGLSurface(EGL_NO_SURFACE) {
593 +RenderCompositorEGL::~RenderCompositorEGL() {
594 + DestroyEGLSurface();
597 +bool RenderCompositorEGL::BeginFrame() {
599 + if (mWidget->AsX11() && mWidget->AsX11()->WaylandRequestsUpdatingEGLSurface()) {
600 + mEGLSurface = CreateEGLSurface(mWidget);
601 + gl::GLContextEGL::Cast(gl())->SetEGLSurfaceOverride(mEGLSurface);
604 + if (!mGL->MakeCurrent()) {
605 + gfxCriticalNote << "Failed to make render context current, can't draw.";
612 +void RenderCompositorEGL::EndFrame()
614 + if (mEGLSurface != EGL_NO_SURFACE) {
615 + mGL->SwapBuffers();
619 +void RenderCompositorEGL::WaitForGPU() {}
621 +void RenderCompositorEGL::Pause() {}
623 +bool RenderCompositorEGL::Resume() {
627 +bool RenderCompositorEGL::MakeCurrent() {
628 + gl::GLContextEGL::Cast(gl())->SetEGLSurfaceOverride(mEGLSurface);
629 + return gl()->MakeCurrent();
632 +void RenderCompositorEGL::DestroyEGLSurface() {
633 + auto* egl = gl::GLLibraryEGL::Get();
635 + // Release EGLSurface of back buffer before calling ResizeBuffers().
637 + gl::GLContextEGL::Cast(gl())->SetEGLSurfaceOverride(EGL_NO_SURFACE);
638 + egl->fDestroySurface(egl->Display(), mEGLSurface);
639 + mEGLSurface = nullptr;
643 +LayoutDeviceIntSize RenderCompositorEGL::GetBufferSize() {
644 + return mWidget->GetClientSize();
648 +} // namespace mozilla
649 diff --git gfx/webrender_bindings/RenderCompositorEGL.h gfx/webrender_bindings/RenderCompositorEGL.h
651 index 000000000000..f12e16d974af
653 +++ gfx/webrender_bindings/RenderCompositorEGL.h
655 +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
656 +/* vim: set ts=8 sts=2 et sw=2 tw=80: */
657 +/* This Source Code Form is subject to the terms of the Mozilla Public
658 + * License, v. 2.0. If a copy of the MPL was not distributed with this
659 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
661 +#ifndef MOZILLA_GFX_RENDERCOMPOSITOR_EGL_H
662 +#define MOZILLA_GFX_RENDERCOMPOSITOR_EGL_H
664 +#include "GLTypes.h"
665 +#include "mozilla/webrender/RenderCompositor.h"
671 +class RenderCompositorEGL : public RenderCompositor {
673 + static UniquePtr<RenderCompositor> Create(
674 + RefPtr<widget::CompositorWidget> aWidget);
676 + RenderCompositorEGL(RefPtr<gl::GLContext> aGL,
677 + RefPtr<widget::CompositorWidget> aWidget);
678 + virtual ~RenderCompositorEGL();
680 + bool BeginFrame() override;
681 + void EndFrame() override;
682 + void WaitForGPU() override;
683 + void Pause() override;
684 + bool Resume() override;
686 + gl::GLContext* gl() const override { return mGL; }
688 + bool MakeCurrent() override;
690 + bool UseANGLE() const override { return false; }
692 + LayoutDeviceIntSize GetBufferSize() override;
695 + static already_AddRefed<gl::GLContext> CreateGLContext(
696 + RefPtr<widget::CompositorWidget> aWidget);
697 + static EGLSurface CreateEGLSurface(widget::CompositorWidget* aWidget);
699 + void DestroyEGLSurface();
701 + const RefPtr<gl::GLContext> mGL;
702 + EGLSurface mEGLSurface;
706 +} // namespace mozilla
708 +#endif // MOZILLA_GFX_RENDERCOMPOSITOR_EGL_H
709 diff --git gfx/webrender_bindings/moz.build gfx/webrender_bindings/moz.build
710 index 4acdfbb817d3..f632bc5d24d9 100644
711 --- gfx/webrender_bindings/moz.build
712 +++ gfx/webrender_bindings/moz.build
713 @@ -67,6 +67,14 @@ if CONFIG['MOZ_ENABLE_D3D10_LAYER']:
714 'RenderCompositorANGLE.cpp',
717 +if CONFIG['MOZ_WAYLAND']:
718 + EXPORTS.mozilla.webrender += [
719 + 'RenderCompositorEGL.h',
722 + 'RenderCompositorEGL.cpp',
725 if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android', 'gtk3'):
726 CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
727 CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
728 @@ -75,5 +83,7 @@ include('/ipc/chromium/chromium-config.mozbuild')
730 FINAL_LIBRARY = 'xul'
732 +CXXFLAGS += CONFIG['TK_CFLAGS']
734 if CONFIG['CC_TYPE'] == 'clang-cl':
735 AllowCompilerWarnings() # workaround for bug 1090497
736 diff --git widget/gtk/CompositorWidgetChild.cpp widget/gtk/CompositorWidgetChild.cpp
737 index b746fec0a283..07847a298707 100644
738 --- widget/gtk/CompositorWidgetChild.cpp
739 +++ widget/gtk/CompositorWidgetChild.cpp
740 @@ -35,5 +35,11 @@ void CompositorWidgetChild::NotifyClientSizeChanged(
741 Unused << SendNotifyClientSizeChanged(aClientSize);
745 +void CompositorWidgetChild::RequestsUpdatingEGLSurface() {
746 + Unused << SendRequestsUpdatingEGLSurface();
750 } // namespace widget
751 } // namespace mozilla
752 diff --git widget/gtk/CompositorWidgetChild.h widget/gtk/CompositorWidgetChild.h
753 index fe3285eb6f22..0167dbb051c6 100644
754 --- widget/gtk/CompositorWidgetChild.h
755 +++ widget/gtk/CompositorWidgetChild.h
756 @@ -24,7 +24,9 @@ class CompositorWidgetChild final : public PCompositorWidgetChild,
757 mozilla::ipc::IPCResult RecvUnobserveVsync() override;
759 void NotifyClientSizeChanged(const LayoutDeviceIntSize& aClientSize) override;
762 + void RequestsUpdatingEGLSurface() override;
765 RefPtr<CompositorVsyncDispatcher> mVsyncDispatcher;
766 RefPtr<CompositorWidgetVsyncObserver> mVsyncObserver;
767 diff --git widget/gtk/CompositorWidgetParent.cpp widget/gtk/CompositorWidgetParent.cpp
768 index ae49ec9174bc..b4031883d3a8 100644
769 --- widget/gtk/CompositorWidgetParent.cpp
770 +++ widget/gtk/CompositorWidgetParent.cpp
771 @@ -40,5 +40,13 @@ mozilla::ipc::IPCResult CompositorWidgetParent::RecvNotifyClientSizeChanged(
775 +mozilla::ipc::IPCResult CompositorWidgetParent::RecvRequestsUpdatingEGLSurface()
778 + RequestsUpdatingEGLSurface();
783 } // namespace widget
784 } // namespace mozilla
785 diff --git widget/gtk/CompositorWidgetParent.h widget/gtk/CompositorWidgetParent.h
786 index 5d0ccfcf50f2..8ddd58a8964f 100644
787 --- widget/gtk/CompositorWidgetParent.h
788 +++ widget/gtk/CompositorWidgetParent.h
789 @@ -27,6 +27,8 @@ class CompositorWidgetParent final : public PCompositorWidgetParent,
790 mozilla::ipc::IPCResult RecvNotifyClientSizeChanged(
791 const LayoutDeviceIntSize& aClientSize) override;
793 + mozilla::ipc::IPCResult RecvRequestsUpdatingEGLSurface() override;
796 RefPtr<VsyncObserver> mVsyncObserver;
798 diff --git widget/gtk/GtkCompositorWidget.cpp widget/gtk/GtkCompositorWidget.cpp
799 index bc21d6c4d05e..f787e8c23797 100644
800 --- widget/gtk/GtkCompositorWidget.cpp
801 +++ widget/gtk/GtkCompositorWidget.cpp
802 @@ -85,6 +85,18 @@ void GtkCompositorWidget::NotifyClientSizeChanged(
803 mClientSize = aClientSize;
807 +void GtkCompositorWidget::RequestsUpdatingEGLSurface() {
808 + mWaylandRequestsUpdatingEGLSurface = true;
811 +bool GtkCompositorWidget::WaylandRequestsUpdatingEGLSurface() {
812 + bool ret = mWaylandRequestsUpdatingEGLSurface;
813 + mWaylandRequestsUpdatingEGLSurface = false;
818 LayoutDeviceIntSize GtkCompositorWidget::GetClientSize() { return mClientSize; }
820 uintptr_t GtkCompositorWidget::GetWidgetKey() {
821 diff --git widget/gtk/GtkCompositorWidget.h widget/gtk/GtkCompositorWidget.h
822 index fd0c71426c18..75e156dffb02 100644
823 --- widget/gtk/GtkCompositorWidget.h
824 +++ widget/gtk/GtkCompositorWidget.h
825 @@ -20,6 +20,10 @@ class PlatformCompositorWidgetDelegate : public CompositorWidgetDelegate {
826 virtual void NotifyClientSizeChanged(
827 const LayoutDeviceIntSize& aClientSize) = 0;
830 + virtual void RequestsUpdatingEGLSurface() = 0;
833 // CompositorWidgetDelegate Overrides
835 PlatformCompositorWidgetDelegate* AsPlatformSpecificDelegate() override {
836 @@ -62,11 +66,18 @@ class GtkCompositorWidget : public CompositorWidget,
838 void NotifyClientSizeChanged(const LayoutDeviceIntSize& aClientSize) override;
841 + void RequestsUpdatingEGLSurface() override;
842 + bool WaylandRequestsUpdatingEGLSurface();
848 LayoutDeviceIntSize mClientSize;
850 + bool mWaylandRequestsUpdatingEGLSurface = false;
855 diff --git widget/gtk/PCompositorWidget.ipdl widget/gtk/PCompositorWidget.ipdl
856 index 178fe78e4dc2..51390e400649 100644
857 --- widget/gtk/PCompositorWidget.ipdl
858 +++ widget/gtk/PCompositorWidget.ipdl
859 @@ -19,6 +19,7 @@ parent:
862 async NotifyClientSizeChanged(LayoutDeviceIntSize aClientSize);
863 + async RequestsUpdatingEGLSurface();
867 diff --git widget/gtk/mozcontainer.cpp widget/gtk/mozcontainer.cpp
868 index 8be1f133d39f..8461e7b9d470 100644
869 --- widget/gtk/mozcontainer.cpp
870 +++ widget/gtk/mozcontainer.cpp
871 @@ -159,6 +159,7 @@ void moz_container_init(MozContainer *container) {
872 // We can draw to x11 window any time.
873 container->ready_to_draw = GDK_IS_X11_DISPLAY(gdk_display_get_default());
874 container->surface_needs_clear = true;
875 + container->egl_surface_needs_update = false;
879 @@ -176,6 +177,9 @@ static void frame_callback_handler(void *data, struct wl_callback *callback,
881 MozContainer *container = MOZ_CONTAINER(data);
882 g_clear_pointer(&container->frame_callback_handler, wl_callback_destroy);
883 + if (!container->ready_to_draw) {
884 + container->egl_surface_needs_update = true;
886 container->ready_to_draw = true;
889 @@ -208,6 +212,7 @@ static void moz_container_unmap_wayland(MozContainer *container) {
890 g_clear_pointer(&container->frame_callback_handler, wl_callback_destroy);
892 container->surface_needs_clear = true;
893 + container->egl_surface_needs_update = false;
894 container->ready_to_draw = false;
897 @@ -555,6 +560,12 @@ gboolean moz_container_surface_needs_clear(MozContainer *container) {
898 container->surface_needs_clear = false;
902 +gboolean moz_container_egl_surface_needs_update(MozContainer *container){
903 + gboolean state = container->egl_surface_needs_update;
904 + container->egl_surface_needs_update = false;
909 void moz_container_force_default_visual(MozContainer *container) {
910 diff --git widget/gtk/mozcontainer.h widget/gtk/mozcontainer.h
911 index e9c218c1bc3e..1ed6f439805d 100644
912 --- widget/gtk/mozcontainer.h
913 +++ widget/gtk/mozcontainer.h
914 @@ -77,6 +77,7 @@ struct _MozContainer {
915 struct wl_egl_window *eglwindow;
916 struct wl_callback *frame_callback_handler;
917 gboolean surface_needs_clear;
918 + gboolean egl_surface_needs_update;
919 gboolean ready_to_draw;
921 gboolean force_default_visual;
922 @@ -100,6 +101,7 @@ gboolean moz_container_has_wl_egl_window(MozContainer *container);
923 gboolean moz_container_surface_needs_clear(MozContainer *container);
924 void moz_container_scale_changed(MozContainer *container,
925 GtkAllocation *aAllocation);
926 +gboolean moz_container_egl_surface_needs_update(MozContainer *container);
929 #endif /* __MOZ_CONTAINER_H__ */
930 diff --git widget/gtk/nsWindow.cpp widget/gtk/nsWindow.cpp
931 index 50e6354ea374..ceabbf583a42 100644
932 --- widget/gtk/nsWindow.cpp
933 +++ widget/gtk/nsWindow.cpp
934 @@ -1886,6 +1886,11 @@ gboolean nsWindow::OnExposeEvent(cairo_t *cr) {
935 region.ScaleRoundOut(scale, scale);
937 if (GetLayerManager()->AsKnowsCompositor() && mCompositorSession) {
939 + if(mCompositorWidgetDelegate && WaylandRequestsUpdatingEGLSurface()) {
940 + mCompositorWidgetDelegate->RequestsUpdatingEGLSurface();
943 // We need to paint to the screen even if nothing changed, since if we
944 // don't have a compositing window manager, our pixels could be stale.
945 GetLayerManager()->SetNeedsComposite(true);
946 @@ -6599,6 +6604,17 @@ bool nsWindow::WaylandSurfaceNeedsClear() {
947 "nsWindow::WaylandSurfaceNeedsClear(): We don't have any mContainer!");
951 +bool nsWindow::WaylandRequestsUpdatingEGLSurface() {
953 + return moz_container_egl_surface_needs_update(MOZ_CONTAINER(mContainer));
957 + "nsWindow::WaylandSurfaceNeedsClear(): We don't have any mContainer!");
964 diff --git widget/gtk/nsWindow.h widget/gtk/nsWindow.h
965 index b528ebfdeccb..ea0be70d7eb2 100644
966 --- widget/gtk/nsWindow.h
967 +++ widget/gtk/nsWindow.h
968 @@ -373,6 +373,7 @@ class nsWindow final : public nsBaseWidget {
969 wl_display* GetWaylandDisplay();
970 wl_surface* GetWaylandSurface();
971 bool WaylandSurfaceNeedsClear();
972 + bool WaylandRequestsUpdatingEGLSurface();
974 virtual void GetCompositorWidgetInitData(
975 mozilla::widget::CompositorWidgetInitData* aInitData) override;
978 [FILE:1099:patches/patch-bug1527556]
980 Author: sotaro <sotaro.ikeda.g@gmail.com>
981 Date: Mon Feb 18 09:15:30 2019 +0000
983 Bug 1527556 - Change MAX_DISPLAY_CONNECTIONS to 3 r=stransky
985 nsWaylandDisplay needs to be allocated for each calling thread(main thread, compositor thread and render thread)
987 Differential Revision: https://phabricator.services.mozilla.com/D20118
990 extra : moz-landing-system : lando
992 widget/gtk/nsWaylandDisplay.cpp | 4 +++-
993 1 file changed, 3 insertions(+), 1 deletion(-)
995 diff --git widget/gtk/nsWaylandDisplay.cpp widget/gtk/nsWaylandDisplay.cpp
996 index 4c2804be2831..ac01e1f50347 100644
997 --- widget/gtk/nsWaylandDisplay.cpp.orig 2019-03-26 21:19:53 UTC
998 +++ widget/gtk/nsWaylandDisplay.cpp
1003 -#define MAX_DISPLAY_CONNECTIONS 2
1004 +// nsWaylandDisplay needs to be created for each calling thread(main thread,
1005 +// compositor thread and render thread)
1006 +#define MAX_DISPLAY_CONNECTIONS 3
1008 static nsWaylandDisplay *gWaylandDisplays[MAX_DISPLAY_CONNECTIONS];
1009 static StaticMutex gWaylandDisplaysMutex;
1012 [FILE:7693:patches/patch-bug1527804]
1014 Author: sotaro <sotaro.ikeda.g@gmail.com>
1015 Date: Mon Feb 25 12:15:50 2019 +0000
1017 Bug 1527804 - Trigger composite from frame_callback_handler() r=stransky
1019 Bug 1514156 expects that nsWindow::OnExposeEvent() is called after frame_callback_handler() called. But it did not happen during opening add-ons(gecko profiler). Then we need to trigger rendering directly from frame_callback_handler() call.
1021 Differential Revision: https://phabricator.services.mozilla.com/D20272
1024 extra : moz-landing-system : lando
1026 widget/gtk/mozcontainer.cpp | 20 +++++++++----------
1027 widget/gtk/mozcontainer.h | 7 +++++--
1028 widget/gtk/nsWindow.cpp | 48 ++++++++++++++++++++++++++++++---------------
1029 widget/gtk/nsWindow.h | 4 +++-
1030 4 files changed, 50 insertions(+), 29 deletions(-)
1032 diff --git widget/gtk/mozcontainer.cpp widget/gtk/mozcontainer.cpp
1033 index 77ac02e2a049..efe5f7ba86e3 100644
1034 --- widget/gtk/mozcontainer.cpp
1035 +++ widget/gtk/mozcontainer.cpp
1036 @@ -160,7 +160,7 @@ void moz_container_init(MozContainer *container) {
1037 // We can draw to x11 window any time.
1038 container->ready_to_draw = GDK_IS_X11_DISPLAY(gdk_display_get_default());
1039 container->surface_needs_clear = true;
1040 - container->egl_surface_needs_update = false;
1041 + container->inital_draw_cb = nullptr;
1045 @@ -178,12 +178,18 @@ static void frame_callback_handler(void *data, struct wl_callback *callback,
1047 MozContainer *container = MOZ_CONTAINER(data);
1048 g_clear_pointer(&container->frame_callback_handler, wl_callback_destroy);
1049 - if (!container->ready_to_draw) {
1050 - container->egl_surface_needs_update = true;
1051 + if (!container->ready_to_draw && container->inital_draw_cb) {
1052 + container->inital_draw_cb();
1054 container->ready_to_draw = true;
1057 +void moz_container_set_initial_draw_callback(
1058 + MozContainer *container,
1059 + std::function<void(void)> inital_draw_cb) {
1060 + container->inital_draw_cb = inital_draw_cb;
1063 static const struct wl_callback_listener frame_listener = {
1064 frame_callback_handler};
1066 @@ -214,8 +220,8 @@ static void moz_container_unmap_wayland(MozContainer *container) {
1067 g_clear_pointer(&container->frame_callback_handler, wl_callback_destroy);
1069 container->surface_needs_clear = true;
1070 - container->egl_surface_needs_update = false;
1071 container->ready_to_draw = false;
1072 + container->inital_draw_cb = nullptr;
1075 static gint moz_container_get_scale(MozContainer *container) {
1076 @@ -560,12 +566,6 @@ gboolean moz_container_surface_needs_clear(MozContainer *container) {
1077 container->surface_needs_clear = false;
1081 -gboolean moz_container_egl_surface_needs_update(MozContainer *container){
1082 - gboolean state = container->egl_surface_needs_update;
1083 - container->egl_surface_needs_update = false;
1088 void moz_container_force_default_visual(MozContainer *container) {
1089 diff --git widget/gtk/mozcontainer.h widget/gtk/mozcontainer.h
1090 index ae6d656646c8..51be814ef975 100644
1091 --- widget/gtk/mozcontainer.h
1092 +++ widget/gtk/mozcontainer.h
1094 #define __MOZ_CONTAINER_H__
1096 #include <gtk/gtk.h>
1097 +#include <functional>
1101 @@ -77,8 +78,8 @@ struct _MozContainer {
1102 struct wl_egl_window *eglwindow;
1103 struct wl_callback *frame_callback_handler;
1104 gboolean surface_needs_clear;
1105 - gboolean egl_surface_needs_update;
1106 gboolean ready_to_draw;
1107 + std::function<void(void)> inital_draw_cb;
1109 gboolean force_default_visual;
1111 @@ -101,7 +102,9 @@ gboolean moz_container_has_wl_egl_window(MozContainer *container);
1112 gboolean moz_container_surface_needs_clear(MozContainer *container);
1113 void moz_container_scale_changed(MozContainer *container,
1114 GtkAllocation *aAllocation);
1115 -gboolean moz_container_egl_surface_needs_update(MozContainer *container);
1116 +void moz_container_set_initial_draw_callback(
1117 + MozContainer *container,
1118 + std::function<void(void)> inital_draw_cb);
1121 #endif /* __MOZ_CONTAINER_H__ */
1122 diff --git widget/gtk/nsWindow.cpp widget/gtk/nsWindow.cpp
1123 index acb957d3fb55..54b121ec5514 100644
1124 --- widget/gtk/nsWindow.cpp
1125 +++ widget/gtk/nsWindow.cpp
1126 @@ -675,6 +675,12 @@ void nsWindow::Destroy() {
1127 gFocusWindow = nullptr;
1132 + moz_container_set_initial_draw_callback(mContainer, nullptr);
1136 GtkWidget *owningWidget = GetMozContainerWidget();
1138 gtk_widget_destroy(mShell);
1139 @@ -1860,6 +1866,23 @@ static bool ExtractExposeRegion(LayoutDeviceIntRegion &aRegion, cairo_t *cr) {
1144 +void nsWindow::WaylandEGLSurfaceForceRedraw() {
1145 + MOZ_RELEASE_ASSERT(NS_IsMainThread());
1147 + if (mIsDestroyed) {
1151 + if (CompositorBridgeChild* remoteRenderer = GetRemoteRenderer()) {
1152 + if (mCompositorWidgetDelegate) {
1153 + mCompositorWidgetDelegate->RequestsUpdatingEGLSurface();
1155 + remoteRenderer->SendForcePresent();
1160 gboolean nsWindow::OnExposeEvent(cairo_t *cr) {
1161 // Send any pending resize events so that layout can update.
1162 // May run event loop.
1163 @@ -1888,11 +1911,6 @@ gboolean nsWindow::OnExposeEvent(cairo_t *cr) {
1164 region.ScaleRoundOut(scale, scale);
1166 if (GetLayerManager()->AsKnowsCompositor() && mCompositorSession) {
1168 - if(mCompositorWidgetDelegate && WaylandRequestsUpdatingEGLSurface()) {
1169 - mCompositorWidgetDelegate->RequestsUpdatingEGLSurface();
1172 // We need to paint to the screen even if nothing changed, since if we
1173 // don't have a compositing window manager, our pixels could be stale.
1174 GetLayerManager()->SetNeedsComposite(true);
1175 @@ -3454,6 +3472,15 @@ nsresult nsWindow::Create(nsIWidget *aParent, nsNativeWidget aNativeParent,
1176 // Create a container to hold child windows and child GtkWidgets.
1177 GtkWidget *container = moz_container_new();
1178 mContainer = MOZ_CONTAINER(container);
1180 + if (!mIsX11Display && ComputeShouldAccelerate()) {
1181 + RefPtr<nsWindow> self(this);
1182 + moz_container_set_initial_draw_callback(mContainer,
1183 + [self]() -> void {
1184 + self->WaylandEGLSurfaceForceRedraw();
1189 // "csd" style is set when widget is realized so we need to call
1190 // it explicitly now.
1191 @@ -6564,17 +6591,6 @@ bool nsWindow::WaylandSurfaceNeedsClear() {
1192 "nsWindow::WaylandSurfaceNeedsClear(): We don't have any mContainer!");
1196 -bool nsWindow::WaylandRequestsUpdatingEGLSurface() {
1198 - return moz_container_egl_surface_needs_update(MOZ_CONTAINER(mContainer));
1202 - "nsWindow::WaylandSurfaceNeedsClear(): We don't have any mContainer!");
1209 diff --git widget/gtk/nsWindow.h widget/gtk/nsWindow.h
1210 index 5d119b4911e1..dbced693be1c 100644
1211 --- widget/gtk/nsWindow.h
1212 +++ widget/gtk/nsWindow.h
1213 @@ -245,6 +245,9 @@ class nsWindow final : public nsBaseWidget {
1215 void DispatchContextMenuEventFromMouseEvent(uint16_t domButton,
1216 GdkEventButton* aEvent);
1218 + void WaylandEGLSurfaceForceRedraw();
1222 void ThemeChanged(void);
1223 @@ -342,7 +345,6 @@ class nsWindow final : public nsBaseWidget {
1224 wl_display* GetWaylandDisplay();
1225 wl_surface* GetWaylandSurface();
1226 bool WaylandSurfaceNeedsClear();
1227 - bool WaylandRequestsUpdatingEGLSurface();
1229 virtual void GetCompositorWidgetInitData(
1230 mozilla::widget::CompositorWidgetInitData* aInitData) override;
1233 [FILE:35604:patches/patch-bug1530098]
1234 https://github.com/rust-lang/libc/commit/5e187562eed6
1235 https://github.com/rust-lang/libc/commit/e628de2d7d40
1236 https://github.com/rust-lang/libc/commit/6c1e2dec8f2b
1237 https://github.com/rust-lang/libc/commit/69c9c541f76c
1239 diff --git third_party/rust/libc/.cargo-checksum.json third_party/rust/libc/.cargo-checksum.json
1240 index 587d7582bc89..7cdb11ee2d6b 100644
1241 --- third_party/rust/libc/.cargo-checksum.json.orig 2019-03-26 21:19:52 UTC
1242 +++ third_party/rust/libc/.cargo-checksum.json
1244 -{"files":{"Cargo.toml":"74e837a30336b387d94fc92db3d1ece407b47318ca1362a2b8f37dfb28064e54","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","README.md":"a550fd6c92b62c70925cc6a75dd1d40ae93f9a77e3c4e9baacdf014fa0cae550","appveyor.yml":"216f7ac4561aa5810dc84ce5a9950897a8c0496e0615d0211d62348b1c8dc720","ci/README.md":"2e3d7ad13f8c3202e57d2af73aeeebde306221dce7c0907e462e25767a692d6b","ci/android-install-ndk.sh":"725db9025c5905849916bf7c910f98ff0e753484397c2a1f836d48a576d10890","ci/android-install-sdk.sh":"5c3fbe402ac611239ac7715a61f247d1c55fa012f33a5be0b0127dfc196965cf","ci/android-sysimage.sh":"901415631752827454c827e8c51906ba4260612e4021eda98eb7fff771c7d0e8","ci/docker/aarch64-linux-android/Dockerfile":"e17945fba1786dfe766006f50e79baf3f4151ca0c0c14ae96f91483bf345afd7","ci/docker/aarch64-unknown-linux-gnu/Dockerfile":"5f430271941e1eecdf9d1a5fb701dd5622e2c4b9da03140fd829bf216e55529d","ci/docker/aarch64-unknown-linux-musl/Dockerfile":"1e8c66067bcbd718119db5eb6e69390c4f0ea72c1543e09b6846a36ef66cd21b","ci/docker/arm-linux-androideabi/Dockerfile":"4e0bdc13254f99bd0db195f91331c634050426e3e4a0fcc63ef25ab795fe2d46","ci/docker/arm-unknown-linux-gnueabihf/Dockerfile":"dbb025b53b27e406893184290836a50133ecae8295711d5e05b4e41fac9bd262","ci/docker/arm-unknown-linux-musleabihf/Dockerfile":"12b50abdc5605e3a39eff6bb0d0fccb0885896933c5bfbb3d0cbde9068492a0f","ci/docker/asmjs-unknown-emscripten/Dockerfile":"0d9aea5119c2cd136cc2c0a578105d91210e45901ac49b17c5e45f458b1c7551","ci/docker/i686-linux-android/Dockerfile":"4e8377ec0bd9ad2df23bf2c5373200a12750dc9f28c4f10bc83a0150fe1623ee","ci/docker/i686-unknown-linux-gnu/Dockerfile":"f22ac412525ef15b33ab8ccd8193d97346faf421c17f6ddeffc25b651aba83b7","ci/docker/i686-unknown-linux-musl/Dockerfile":"f95cd8b514f48686d774b85e4dffccce1a5acd68749d8ff59b204419d448d575","ci/docker/mips-unknown-linux-gnu/Dockerfile":"6d2a9daa299003497c1d441d07b69f730ad75ee49f34520f959b5158e60072e0","ci/docker/mips-unknown-linux-musl/Dockerfile":"4773b2656a7dd6a3b106fcb737428436652edf3d1f48181de3f62c16bf5bd49d","ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile":"7c4d26232f1c1553a6612d9b0b3faac9887e139eaffa025f70d34113dcee812f","ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile":"edb4144c07ade1a8bd65272ec1d3672ad794e9e6b7d01197896e159a70175b58","ci/docker/mipsel-unknown-linux-musl/Dockerfile":"0ca9c12b5618c6d2df04ff820d56fb28e05b43e45eaa506480126b03c5072d48","ci/docker/powerpc-unknown-linux-gnu/Dockerfile":"4b247dcc399395815ec9153c1247cc03d764896c484eddcb196d0bf8650d6311","ci/docker/powerpc64-unknown-linux-gnu/Dockerfile":"e949717a8ba5e123940729ff47ce1c45989c8b8247c576f1488f698b534e0283","ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile":"018591017f499414a9f79477e1c39baa6a47f71fce6812fb1868fb0fcdfb8cea","ci/docker/s390x-unknown-linux-gnu/Dockerfile":"9860f478c5b2dc3bcf76d2cda7f71922a2a2ef54898cc2ed6ea9b9eff094a5c0","ci/docker/sparc64-unknown-linux-gnu/Dockerfile":"1471a694817758331ecdbb23857537563ad7ae56aa3a88e49bf9cd421addcafe","ci/docker/wasm32-unknown-emscripten/Dockerfile":"bd072d6ae91a9160693e402dd77462d3c9dd0716711e719a62af330ae479eb4e","ci/docker/wasm32-unknown-emscripten/node-wrapper.sh":"0eef37c3c4fb16dbc083148b7e7af45f2ae60bd9a1b3a77e1d43da79efbd30c6","ci/docker/x86_64-linux-android/Dockerfile":"aeeaa540189ca712369c564c9a14cbace63217dadcfaf879a2cb40fbdeb08199","ci/docker/x86_64-rumprun-netbsd/Dockerfile":"e8f9287b267c6058eec42d1bca0007cb9a78a1d244dd8e11088368cb61fb17d6","ci/docker/x86_64-rumprun-netbsd/runtest.rs":"53302e9ed39293c1ec68ab56287593907d4aaf5bac9c1c2857b29f754a71d62b","ci/docker/x86_64-unknown-freebsd/Dockerfile":"ab1f14c65c29f3721c7c091bdec2e865fb1abf45fdcdc867201d087966e396c4","ci/docker/x86_64-unknown-linux-gnu/Dockerfile":"ab3fa45765802b8155996796fcad9fb82096360ac587e38e6faa3ec345268796","ci/docker/x86_64-unknown-linux-gnux32/Dockerfile":"f22ac412525ef15b33ab8ccd8193d97346faf421c17f6ddeffc25b651aba83b7","ci/docker/x86_64-unknown-linux-musl/Dockerfile":"0c31058e39d9f25c6f4f9b7fe78c7c8d135f32bfe52199e9b2e7fa10d5dc3940","ci/dox.sh":"d77171a9da467bb01fc702a28fc3b5099f82a485a627f3d5593a9830c3e1a77c","ci/emscripten-entry.sh":"c97bbec520b57af9b1ae264ca991560e99c3852c99b00a2f673c614d1ba17498","ci/emscripten.sh":"6f66c7b5c3d34a41afc59ceb0a8c3b0880cd6fd9a6344b874ae80bac0639ccb2","ci/ios/deploy_and_run_on_ios_simulator.rs":"be6d2ccfe78df5d77a2c4ee40ffbd22b1bb2ac0a0cf6b2a108f21406f22ce1a8","ci/landing-page-footer.html":"b70b3112c2147f5c967e7481061ef38bc2d79a28dd55a16fb916d9c9426da2c4","ci/landing-page-head.html":"ad69663fac7924f27d0209bc519d55838e86edfc4133713a6fd08caadac1b142","ci/linux-s390x.sh":"d6b732d7795b4ba131326aff893bca6228a7d2eb0e9402f135705413dbbe0dce","ci/linux-sparc64.sh":"c92966838b1ab7ad3b7a344833ee726aba6b647cf5952e56f0ad1ba420b13325","ci/run-docker.sh":"be83bc5a8b5ef913a7c9941ffca24734716028650c9a876123c4c160672c18de","ci/run-qemu.sh":"bb859421170871ef23a8940c5e150efec0c01b95e32d2ce2d37b79a45d9d346c","ci/run.sh":"86b7d1ce555ed5eeeac6b44fd0e9563166ff38ba38e56a82d70800ace3b65946","ci/runtest-android.rs":"a07ddbdd276aedda7876c7e676774178a60d9aeab95df01275a4ee95f59e3044","ci/style.rs":"940c06a676cff1dfc1555b887e46867c6aacc473956cd6aaafaed71824facdb2","ci/test-runner-linux":"cb3713d9e4fa1d9a7c039dfd077af0939921c1f2bf969c9e680ee66e87dc30a4","src/cloudabi/aarch64.rs":"b8550bf1fd7344972aa4db29441486f39f31482d0327534981dbb75959c29114","src/cloudabi/arm.rs":"c197e2781c2839808bd6fcef219a29705b27b992d3ef920e9cf6ac96e2022bbf","src/cloudabi/mod.rs":"1c2dc787a1b3438970ccd04153c93538719b1a27445707913b90b6f0cdcdde77","src/cloudabi/x86.rs":"33eb97f272d2201f3838ae74d444583c7de8f67856852ca375293b20bbd05636","src/cloudabi/x86_64.rs":"400d85d4fe39e26cf2e6ece9ee31c75fe9e88c4bcf4d836ca9f765c05c9c5be3","src/dox.rs":"8f6037887281b828d8541ce8a549dacaed5d29c05fd9cf78b169838476b82741","src/fuchsia/aarch64.rs":"8366ac6f51e494aad9266ccab2b3a95c5ed7aa3a9f77ea672413283440919743","src/fuchsia/mod.rs":"e5b7e6ff40e670200c52919b53474627931b4def18d452323999de201953cf21","src/fuchsia/powerpc64.rs":"390e8db54271a1d5f512d54a21b328091a792378bf9b42b49b6c1a72388da4ec","src/fuchsia/x86_64.rs":"b4a3eff94dcf1ffe41e6500468ca2cff0e97ddbcc75fe079b6ac7adb1e493f56","src/lib.rs":"bbad6abf79078649e76c2379c3c3fcbc4198430736e726a01d96a8f1439e8cb1","src/macros.rs":"8ad55edea39fad158e80c5df0d7b520b6863f5088db4db286ba31c12cbc4d67d","src/redox/mod.rs":"685d4d39911e855bf0fd7879b9a02bc15cefebfb0f520382c1a1353364f0d523","src/redox/net.rs":"f2e1922883f208cb46c00744da4a68feccfbec576c6981978ad404e46f818c8b","src/unix/bsd/apple/b32.rs":"41699d2802327b0a4d4aa50cd20b1e366b442176cbedab27ca888ac0446c9156","src/unix/bsd/apple/b64.rs":"0cda592881a1db30f2d96ff0f67cf4214aa99881dfe4f2fb474ef7ec78bd204a","src/unix/bsd/apple/mod.rs":"ac02092ad74cb81fa789e89d541d79525d2298ac77842847b48e5fd1a83fff0d","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"7a8df4e8079ed60ad4ac35362901eb2fea4d53384709e4ac45930899b84f8eaf","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"97132e2097411034271b8c927ecc94a208a361564680972a6c82998bd30a9826","src/unix/bsd/freebsdlike/freebsd/mod.rs":"1b158199be42b37708f10d0e73164cf0b63a2b5ae0e6fcc1feab5944f5377f24","src/unix/bsd/freebsdlike/freebsd/x86.rs":"54311d3ebf2bb091ab22361e377e6ef9224aec2ecfe459fbfcedde4932db9c58","src/unix/bsd/freebsdlike/freebsd/x86_64.rs":"97132e2097411034271b8c927ecc94a208a361564680972a6c82998bd30a9826","src/unix/bsd/freebsdlike/mod.rs":"9ddcc86d3bb76f426e26c4df8d853b3715a7d6d9006acaa4fa26b2b0f5bb3314","src/unix/bsd/mod.rs":"a1030452eed4ec52a39e9f39040e8fae4309143c7af145efadd9b425caa39672","src/unix/bsd/netbsdlike/mod.rs":"6fb522d55eced39ef1bc28873f9ae8d5ab141acde09c5cb6a22aeca577d916ad","src/unix/bsd/netbsdlike/netbsd/mod.rs":"1cd66ed5967c788562d4ad626cfbeb1544f4b9267111de5f6790379b8327f28e","src/unix/bsd/netbsdlike/netbsd/other/b32/mod.rs":"bd251a102bed65d5cb3459275f6ec3310fe5803ff4c9651212115548f86256d0","src/unix/bsd/netbsdlike/netbsd/other/b64/mod.rs":"927eeccaf3269d299db4c2a55f8010807bf43dfa894aea6a783215f5d3560baa","src/unix/bsd/netbsdlike/netbsd/other/mod.rs":"4d9f7091af8e166943ac6f42ce85558909e5b6e61325039bff7adfbcf4b90212","src/unix/bsd/netbsdlike/openbsdlike/bitrig/mod.rs":"92459d80b8e5b570c0efe35a1d244d38f23072cd28b6581dfcb313dc9bfc3d51","src/unix/bsd/netbsdlike/openbsdlike/bitrig/x86.rs":"bd251a102bed65d5cb3459275f6ec3310fe5803ff4c9651212115548f86256d0","src/unix/bsd/netbsdlike/openbsdlike/bitrig/x86_64.rs":"927eeccaf3269d299db4c2a55f8010807bf43dfa894aea6a783215f5d3560baa","src/unix/bsd/netbsdlike/openbsdlike/mod.rs":"37fea61239bd53cd951fd7bc800229f663be2e9ad2e1539ebdf73767ca28b469","src/unix/bsd/netbsdlike/openbsdlike/openbsd/aarch64.rs":"820092e397c7ec259cd2de8f2444083a8e57071c02d73d678701dfa7807726e9","src/unix/bsd/netbsdlike/openbsdlike/openbsd/mod.rs":"973331fd80876db55467913556d81f45ea1ede03322fef9c5d552aba833d2207","src/unix/bsd/netbsdlike/openbsdlike/openbsd/x86.rs":"44b7ea81cf363777b29935da175e702cbf45ed78f7498ae57faf44aa32335085","src/unix/bsd/netbsdlike/openbsdlike/openbsd/x86_64.rs":"7c959cdb3415f68a0f948117b9aa87a17463e57ab97cc3235f2567454b706653","src/unix/haiku/b32.rs":"69ae47fc52c6880e85416b4744500d5655c9ec6131cb737f3b649fceaadce15a","src/unix/haiku/b64.rs":"73e64db09275a8da8d50a13cce2cfa2b136036ddf3a930d2939f337fc995900b","src/unix/haiku/mod.rs":"8b8a7a51e1bc20407e42b0ab6c1a0cd1c8fc4f3ef61a04ccb7c8e312495ce30b","src/unix/hermit/aarch64.rs":"86048676e335944c37a63d0083d0f368ae10ceccefeed9debb3bbe08777fc682","src/unix/hermit/mod.rs":"a8bb096695eea74fb1c5c6766c1e680d28378c452dbc622fa5f91c6ce204306f","src/unix/hermit/x86_64.rs":"ab832b7524e5fb15c49ff7431165ab1a37dc4667ae0b58e8306f4c539bfa110c","src/unix/mod.rs":"af909129f76f9bbe571dee2e78f43afd63ff6e46c27a429da43c239537330283","src/unix/newlib/aarch64/mod.rs":"c408a990f22fb4292a824f38367e9b517e6e6f8623328397ee631cc88b3d1f7d","src/unix/newlib/arm/mod.rs":"2b6dba2e697ab9b4f4bc4dd5f28057249e9b596d1cb395a9322ec87605c4a5c4","src/unix/newlib/mod.rs":"d9f59ee9a994490122986b7ae5e3064bf9ce0b888349a388a50341a4c7069842","src/unix/notbsd/android/b32/arm.rs":"3625a32c7e58cfe683a53486fbe3d42d4e28f00bea31e19cb46ed2bb0b6a140b","src/unix/notbsd/android/b32/mod.rs":"2fbe398c1fb5251dda6213741a193e50aae4622807cb255d1dd2e82b536f0c65","src/unix/notbsd/android/b32/x86.rs":"ae2b7f1d6278caddc007749bb1d09ca33f7593478a0fd7fe98b457dae86c7814","src/unix/notbsd/android/b64/aarch64.rs":"63d65629d79371814910f691672ef593d20244ee09be26f1ebe07ee6212d0163","src/unix/notbsd/android/b64/mod.rs":"90d4f6b063fd4de42fd302cbc9d9902fd99ac1d71dc48cb8bc6ad7b4c902e481","src/unix/notbsd/android/b64/x86_64.rs":"5547aef8dcbaa5a932559f34606fd8d89f6c9c15173d2b1412c12d39b3c1045f","src/unix/notbsd/android/mod.rs":"eadc87bfea5f5e8ea50a3776b526cea2b0bfaf6d55240ba88134e19670f8a3a6","src/unix/notbsd/emscripten.rs":"d2d817af2b1496c1ee173f216c478a3a1c26223ef938797103bc50a265284662","src/unix/notbsd/linux/mips/mips32.rs":"a483ddfd10765b7d5090dc21686eee8842649cd21236828a42d634114885f5f9","src/unix/notbsd/linux/mips/mips64.rs":"9fff696e3943cf206b549d1ae13fa361828e9a8454e2d5730eeaa1c172ff370d","src/unix/notbsd/linux/mips/mod.rs":"af1b7bffff09aa5d8662e6452f72bc1e55b6639899b8c2a4be9cd1cfb245de01","src/unix/notbsd/linux/mod.rs":"081cb74be8b465c9cf86289f675cb7c6f7d7eee39713a6764e1871eabcbaee44","src/unix/notbsd/linux/musl/b32/arm.rs":"9d9bff31ab0925a1f62a20945d36a83b94ce3ab78dd202cd468bb31556b21725","src/unix/notbsd/linux/musl/b32/mips.rs":"cb38c463aebfc235f31880db158dd47c6e21f182a092d3f3087d92994b7711da","src/unix/notbsd/linux/musl/b32/mod.rs":"540928f168f145c136f9dd729ffa12b9d1838d9fe664fc642365d17d7fae648f","src/unix/notbsd/linux/musl/b32/powerpc.rs":"3930a2825657ac9208935341e29cfa62f6e37fc5c6b2c0d0dc9ac8c3b5569d59","src/unix/notbsd/linux/musl/b32/x86.rs":"c02dd333012cf65cb8873fa211eff5e63d466be55451a347510e3d4f50ed515e","src/unix/notbsd/linux/musl/b64/aarch64.rs":"4d79d86d11fbb8cb7a74084e410a1140e3c89dfc1842cdfb213f3a0ca93046df","src/unix/notbsd/linux/musl/b64/mod.rs":"caac00326693b372d6805e4dda239475e7fef36368881f372c006264844fda0d","src/unix/notbsd/linux/musl/b64/powerpc64.rs":"24514e41be4b5f5e0ffbe8a25a99dae8989489b607db59e8bfa345f8e65c9963","src/unix/notbsd/linux/musl/b64/x86_64.rs":"25340999290a63d564ec149532c905f59c312ec369f8806d6b15df66fa1b8857","src/unix/notbsd/linux/musl/mod.rs":"17c70acf9c6eabeb73916c2abb7d7e8b0310214090faae4a8dc2fd183a9b45ba","src/unix/notbsd/linux/other/b32/arm.rs":"d9892f7350b2978335f734f1cd2d7fed60f0f2e66aa05bee3f69549c031f8b14","src/unix/notbsd/linux/other/b32/mod.rs":"dac0fd1054a0fa163bce85df58c4ad4d222d8b7353bdb4364482b46c19991d03","src/unix/notbsd/linux/other/b32/powerpc.rs":"253fcd2f9978525285be1903cc08f3fec2dc3b12d1660a33e2995b4f6b810d1c","src/unix/notbsd/linux/other/b32/x86.rs":"49376e3ed0f3ff95c230ac20751911fe3c608dfe15c7c118b069fd7a954d8db9","src/unix/notbsd/linux/other/b64/aarch64.rs":"d57f3e06a0ac8affc5bf9d17e1f217ef1d1d714c947f47e647e0e038deaf48b2","src/unix/notbsd/linux/other/b64/mod.rs":"63e1a3fdf5f4d1b9820934ab344c91aed5e458e7e05908535d2e942d51a08bf8","src/unix/notbsd/linux/other/b64/not_x32.rs":"fa8636fb93eab230ed53bdec0a06f5b81d6d982cc0800103563c8c1eefcdb2d9","src/unix/notbsd/linux/other/b64/powerpc64.rs":"024057a910d0b885c63443165d34ce33f972973a9a8f5979906198180b19ad8b","src/unix/notbsd/linux/other/b64/sparc64.rs":"bb28f201e29c7f490a42dd2673eb8180fd82c1824a5d21aeb5aed674ffcc6e07","src/unix/notbsd/linux/other/b64/x32.rs":"06a26c5120ced30fc015c220799b67c4401be2f13fc6c7361bebd3d37ff4982d","src/unix/notbsd/linux/other/b64/x86_64.rs":"afba464e903d350325a1ca3d9d5af1659efc0ede83a43dbac4dbd60c522e2ad1","src/unix/notbsd/linux/other/mod.rs":"add154a8cfe9392d5a73b6055eb1419902e2b8b5458c22586a6ef8f90f89501b","src/unix/notbsd/linux/s390x.rs":"033cb7c4ee00af352698615de0248a5c6c9bcff57ba671ee22d31b70ef86fb4a","src/unix/notbsd/mod.rs":"134502158bab09d5189249ef400c9ddf7fdf5d1a1bd3134484ca82b80a0833e7","src/unix/solaris/mod.rs":"9c52a7479b56d3bc1f2c9ba5bb44f71ab1470989a54d3d0d85571e19489e4b7e","src/unix/uclibc/mips/mips32.rs":"9739c5fb47f389a0394ef08ee30da97a3de0a1300020731a8cc0a033616011b2","src/unix/uclibc/mips/mips64.rs":"230583280bbc7b3c7fcdb61244f51fa1af5944ca127c7cf83c598fe2313713d0","src/unix/uclibc/mips/mod.rs":"3f86061d05a8da7d923310550b7d40c6223f0c907d77edc86b7a78da1d647f76","src/unix/uclibc/mod.rs":"8cf2db30468476b917a60fdffe475917302875a3a4150f29a042ebee182545d1","src/unix/uclibc/x86_64/l4re.rs":"68fd3a833fd1f7caf784a084224f384bdbdfb8b5a14ef94c4f5155409afb3439","src/unix/uclibc/x86_64/mod.rs":"419182836aedd426a5c9e6b8667058adf86ac8f43af73ce8d00c503f8ff8f414","src/unix/uclibc/x86_64/other.rs":"f03b47842896f2f3ae6f8ebdcbcf0276454f880349d9cf00e3d304f8136893c5","src/windows.rs":"e41357d610608bad81abf285306ad8b127b6f02d5132f63c4942861980b47d59"},"package":"76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d"}
1245 \ No newline at end of file
1246 +{"files":{"Cargo.toml":"74e837a30336b387d94fc92db3d1ece407b47318ca1362a2b8f37dfb28064e54","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6485b8ed310d3f0340bf1ad1f47645069ce4069dcc6bb46c7d5c6faf41de1fdb","README.md":"a550fd6c92b62c70925cc6a75dd1d40ae93f9a77e3c4e9baacdf014fa0cae550","appveyor.yml":"216f7ac4561aa5810dc84ce5a9950897a8c0496e0615d0211d62348b1c8dc720","ci/README.md":"2e3d7ad13f8c3202e57d2af73aeeebde306221dce7c0907e462e25767a692d6b","ci/android-install-ndk.sh":"725db9025c5905849916bf7c910f98ff0e753484397c2a1f836d48a576d10890","ci/android-install-sdk.sh":"5c3fbe402ac611239ac7715a61f247d1c55fa012f33a5be0b0127dfc196965cf","ci/android-sysimage.sh":"901415631752827454c827e8c51906ba4260612e4021eda98eb7fff771c7d0e8","ci/docker/aarch64-linux-android/Dockerfile":"e17945fba1786dfe766006f50e79baf3f4151ca0c0c14ae96f91483bf345afd7","ci/docker/aarch64-unknown-linux-gnu/Dockerfile":"5f430271941e1eecdf9d1a5fb701dd5622e2c4b9da03140fd829bf216e55529d","ci/docker/aarch64-unknown-linux-musl/Dockerfile":"1e8c66067bcbd718119db5eb6e69390c4f0ea72c1543e09b6846a36ef66cd21b","ci/docker/arm-linux-androideabi/Dockerfile":"4e0bdc13254f99bd0db195f91331c634050426e3e4a0fcc63ef25ab795fe2d46","ci/docker/arm-unknown-linux-gnueabihf/Dockerfile":"dbb025b53b27e406893184290836a50133ecae8295711d5e05b4e41fac9bd262","ci/docker/arm-unknown-linux-musleabihf/Dockerfile":"12b50abdc5605e3a39eff6bb0d0fccb0885896933c5bfbb3d0cbde9068492a0f","ci/docker/asmjs-unknown-emscripten/Dockerfile":"0d9aea5119c2cd136cc2c0a578105d91210e45901ac49b17c5e45f458b1c7551","ci/docker/i686-linux-android/Dockerfile":"4e8377ec0bd9ad2df23bf2c5373200a12750dc9f28c4f10bc83a0150fe1623ee","ci/docker/i686-unknown-linux-gnu/Dockerfile":"f22ac412525ef15b33ab8ccd8193d97346faf421c17f6ddeffc25b651aba83b7","ci/docker/i686-unknown-linux-musl/Dockerfile":"f95cd8b514f48686d774b85e4dffccce1a5acd68749d8ff59b204419d448d575","ci/docker/mips-unknown-linux-gnu/Dockerfile":"6d2a9daa299003497c1d441d07b69f730ad75ee49f34520f959b5158e60072e0","ci/docker/mips-unknown-linux-musl/Dockerfile":"4773b2656a7dd6a3b106fcb737428436652edf3d1f48181de3f62c16bf5bd49d","ci/docker/mips64-unknown-linux-gnuabi64/Dockerfile":"7c4d26232f1c1553a6612d9b0b3faac9887e139eaffa025f70d34113dcee812f","ci/docker/mips64el-unknown-linux-gnuabi64/Dockerfile":"edb4144c07ade1a8bd65272ec1d3672ad794e9e6b7d01197896e159a70175b58","ci/docker/mipsel-unknown-linux-musl/Dockerfile":"0ca9c12b5618c6d2df04ff820d56fb28e05b43e45eaa506480126b03c5072d48","ci/docker/powerpc-unknown-linux-gnu/Dockerfile":"4b247dcc399395815ec9153c1247cc03d764896c484eddcb196d0bf8650d6311","ci/docker/powerpc64-unknown-linux-gnu/Dockerfile":"e949717a8ba5e123940729ff47ce1c45989c8b8247c576f1488f698b534e0283","ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile":"018591017f499414a9f79477e1c39baa6a47f71fce6812fb1868fb0fcdfb8cea","ci/docker/s390x-unknown-linux-gnu/Dockerfile":"9860f478c5b2dc3bcf76d2cda7f71922a2a2ef54898cc2ed6ea9b9eff094a5c0","ci/docker/sparc64-unknown-linux-gnu/Dockerfile":"1471a694817758331ecdbb23857537563ad7ae56aa3a88e49bf9cd421addcafe","ci/docker/wasm32-unknown-emscripten/Dockerfile":"bd072d6ae91a9160693e402dd77462d3c9dd0716711e719a62af330ae479eb4e","ci/docker/wasm32-unknown-emscripten/node-wrapper.sh":"0eef37c3c4fb16dbc083148b7e7af45f2ae60bd9a1b3a77e1d43da79efbd30c6","ci/docker/x86_64-linux-android/Dockerfile":"aeeaa540189ca712369c564c9a14cbace63217dadcfaf879a2cb40fbdeb08199","ci/docker/x86_64-rumprun-netbsd/Dockerfile":"e8f9287b267c6058eec42d1bca0007cb9a78a1d244dd8e11088368cb61fb17d6","ci/docker/x86_64-rumprun-netbsd/runtest.rs":"53302e9ed39293c1ec68ab56287593907d4aaf5bac9c1c2857b29f754a71d62b","ci/docker/x86_64-unknown-freebsd/Dockerfile":"ab1f14c65c29f3721c7c091bdec2e865fb1abf45fdcdc867201d087966e396c4","ci/docker/x86_64-unknown-linux-gnu/Dockerfile":"ab3fa45765802b8155996796fcad9fb82096360ac587e38e6faa3ec345268796","ci/docker/x86_64-unknown-linux-gnux32/Dockerfile":"f22ac412525ef15b33ab8ccd8193d97346faf421c17f6ddeffc25b651aba83b7","ci/docker/x86_64-unknown-linux-musl/Dockerfile":"0c31058e39d9f25c6f4f9b7fe78c7c8d135f32bfe52199e9b2e7fa10d5dc3940","ci/dox.sh":"d77171a9da467bb01fc702a28fc3b5099f82a485a627f3d5593a9830c3e1a77c","ci/emscripten-entry.sh":"c97bbec520b57af9b1ae264ca991560e99c3852c99b00a2f673c614d1ba17498","ci/emscripten.sh":"6f66c7b5c3d34a41afc59ceb0a8c3b0880cd6fd9a6344b874ae80bac0639ccb2","ci/ios/deploy_and_run_on_ios_simulator.rs":"be6d2ccfe78df5d77a2c4ee40ffbd22b1bb2ac0a0cf6b2a108f21406f22ce1a8","ci/landing-page-footer.html":"b70b3112c2147f5c967e7481061ef38bc2d79a28dd55a16fb916d9c9426da2c4","ci/landing-page-head.html":"ad69663fac7924f27d0209bc519d55838e86edfc4133713a6fd08caadac1b142","ci/linux-s390x.sh":"d6b732d7795b4ba131326aff893bca6228a7d2eb0e9402f135705413dbbe0dce","ci/linux-sparc64.sh":"c92966838b1ab7ad3b7a344833ee726aba6b647cf5952e56f0ad1ba420b13325","ci/run-docker.sh":"be83bc5a8b5ef913a7c9941ffca24734716028650c9a876123c4c160672c18de","ci/run-qemu.sh":"bb859421170871ef23a8940c5e150efec0c01b95e32d2ce2d37b79a45d9d346c","ci/run.sh":"86b7d1ce555ed5eeeac6b44fd0e9563166ff38ba38e56a82d70800ace3b65946","ci/runtest-android.rs":"a07ddbdd276aedda7876c7e676774178a60d9aeab95df01275a4ee95f59e3044","ci/style.rs":"940c06a676cff1dfc1555b887e46867c6aacc473956cd6aaafaed71824facdb2","ci/test-runner-linux":"cb3713d9e4fa1d9a7c039dfd077af0939921c1f2bf969c9e680ee66e87dc30a4","src/cloudabi/aarch64.rs":"b8550bf1fd7344972aa4db29441486f39f31482d0327534981dbb75959c29114","src/cloudabi/arm.rs":"c197e2781c2839808bd6fcef219a29705b27b992d3ef920e9cf6ac96e2022bbf","src/cloudabi/mod.rs":"1c2dc787a1b3438970ccd04153c93538719b1a27445707913b90b6f0cdcdde77","src/cloudabi/x86.rs":"33eb97f272d2201f3838ae74d444583c7de8f67856852ca375293b20bbd05636","src/cloudabi/x86_64.rs":"400d85d4fe39e26cf2e6ece9ee31c75fe9e88c4bcf4d836ca9f765c05c9c5be3","src/dox.rs":"8f6037887281b828d8541ce8a549dacaed5d29c05fd9cf78b169838476b82741","src/fuchsia/aarch64.rs":"8366ac6f51e494aad9266ccab2b3a95c5ed7aa3a9f77ea672413283440919743","src/fuchsia/mod.rs":"e5b7e6ff40e670200c52919b53474627931b4def18d452323999de201953cf21","src/fuchsia/powerpc64.rs":"390e8db54271a1d5f512d54a21b328091a792378bf9b42b49b6c1a72388da4ec","src/fuchsia/x86_64.rs":"b4a3eff94dcf1ffe41e6500468ca2cff0e97ddbcc75fe079b6ac7adb1e493f56","src/lib.rs":"bbad6abf79078649e76c2379c3c3fcbc4198430736e726a01d96a8f1439e8cb1","src/macros.rs":"8ad55edea39fad158e80c5df0d7b520b6863f5088db4db286ba31c12cbc4d67d","src/redox/mod.rs":"685d4d39911e855bf0fd7879b9a02bc15cefebfb0f520382c1a1353364f0d523","src/redox/net.rs":"f2e1922883f208cb46c00744da4a68feccfbec576c6981978ad404e46f818c8b","src/unix/bsd/apple/b32.rs":"41699d2802327b0a4d4aa50cd20b1e366b442176cbedab27ca888ac0446c9156","src/unix/bsd/apple/b64.rs":"0cda592881a1db30f2d96ff0f67cf4214aa99881dfe4f2fb474ef7ec78bd204a","src/unix/bsd/apple/mod.rs":"ac02092ad74cb81fa789e89d541d79525d2298ac77842847b48e5fd1a83fff0d","src/unix/bsd/freebsdlike/dragonfly/mod.rs":"9acb311f2f5acf8ce5d28ce60b3eef5715d8f92e25be9adb0c4c78fdb1eee090","src/unix/bsd/freebsdlike/freebsd/aarch64.rs":"8976c6416f5946876275abce890d66a16f4d8998aaec0a0fed74ed4eac98ec03","src/unix/bsd/freebsdlike/freebsd/arm.rs":"28f41704ad6ad9fac15b1480c4c31ca3a4d7e101e9a33a1ce8f89960d5f6501b","src/unix/bsd/freebsdlike/freebsd/mod.rs":"791b92bcfb2224a0631032cada52e20934a9b8509e8c4c9d32f5ba60d864f13b","src/unix/bsd/freebsdlike/freebsd/powerpc64.rs":"8976c6416f5946876275abce890d66a16f4d8998aaec0a0fed74ed4eac98ec03","src/unix/bsd/freebsdlike/freebsd/x86.rs":"e39bf5584f55a4943dcdeda7a086fa093057f0d842c5f93ab6e7321d9eee74a3","src/unix/bsd/freebsdlike/freebsd/x86_64.rs":"d16bc0f9d50108c8724c172d716162ab931361f208e5a7b0e60e592258026e53","src/unix/bsd/freebsdlike/mod.rs":"cbf11c5742e217caa435bf841ab9b03dd9e5278dbfecb0f85722a79e90b5ee90","src/unix/bsd/mod.rs":"a1030452eed4ec52a39e9f39040e8fae4309143c7af145efadd9b425caa39672","src/unix/bsd/netbsdlike/mod.rs":"6fb522d55eced39ef1bc28873f9ae8d5ab141acde09c5cb6a22aeca577d916ad","src/unix/bsd/netbsdlike/netbsd/mod.rs":"1cd66ed5967c788562d4ad626cfbeb1544f4b9267111de5f6790379b8327f28e","src/unix/bsd/netbsdlike/netbsd/other/b32/mod.rs":"bd251a102bed65d5cb3459275f6ec3310fe5803ff4c9651212115548f86256d0","src/unix/bsd/netbsdlike/netbsd/other/b64/mod.rs":"927eeccaf3269d299db4c2a55f8010807bf43dfa894aea6a783215f5d3560baa","src/unix/bsd/netbsdlike/netbsd/other/mod.rs":"4d9f7091af8e166943ac6f42ce85558909e5b6e61325039bff7adfbcf4b90212","src/unix/bsd/netbsdlike/openbsdlike/bitrig/mod.rs":"92459d80b8e5b570c0efe35a1d244d38f23072cd28b6581dfcb313dc9bfc3d51","src/unix/bsd/netbsdlike/openbsdlike/bitrig/x86.rs":"bd251a102bed65d5cb3459275f6ec3310fe5803ff4c9651212115548f86256d0","src/unix/bsd/netbsdlike/openbsdlike/bitrig/x86_64.rs":"927eeccaf3269d299db4c2a55f8010807bf43dfa894aea6a783215f5d3560baa","src/unix/bsd/netbsdlike/openbsdlike/mod.rs":"37fea61239bd53cd951fd7bc800229f663be2e9ad2e1539ebdf73767ca28b469","src/unix/bsd/netbsdlike/openbsdlike/openbsd/aarch64.rs":"820092e397c7ec259cd2de8f2444083a8e57071c02d73d678701dfa7807726e9","src/unix/bsd/netbsdlike/openbsdlike/openbsd/mod.rs":"973331fd80876db55467913556d81f45ea1ede03322fef9c5d552aba833d2207","src/unix/bsd/netbsdlike/openbsdlike/openbsd/x86.rs":"44b7ea81cf363777b29935da175e702cbf45ed78f7498ae57faf44aa32335085","src/unix/bsd/netbsdlike/openbsdlike/openbsd/x86_64.rs":"7c959cdb3415f68a0f948117b9aa87a17463e57ab97cc3235f2567454b706653","src/unix/haiku/b32.rs":"69ae47fc52c6880e85416b4744500d5655c9ec6131cb737f3b649fceaadce15a","src/unix/haiku/b64.rs":"73e64db09275a8da8d50a13cce2cfa2b136036ddf3a930d2939f337fc995900b","src/unix/haiku/mod.rs":"8b8a7a51e1bc20407e42b0ab6c1a0cd1c8fc4f3ef61a04ccb7c8e312495ce30b","src/unix/hermit/aarch64.rs":"86048676e335944c37a63d0083d0f368ae10ceccefeed9debb3bbe08777fc682","src/unix/hermit/mod.rs":"a8bb096695eea74fb1c5c6766c1e680d28378c452dbc622fa5f91c6ce204306f","src/unix/hermit/x86_64.rs":"ab832b7524e5fb15c49ff7431165ab1a37dc4667ae0b58e8306f4c539bfa110c","src/unix/mod.rs":"af909129f76f9bbe571dee2e78f43afd63ff6e46c27a429da43c239537330283","src/unix/newlib/aarch64/mod.rs":"c408a990f22fb4292a824f38367e9b517e6e6f8623328397ee631cc88b3d1f7d","src/unix/newlib/arm/mod.rs":"2b6dba2e697ab9b4f4bc4dd5f28057249e9b596d1cb395a9322ec87605c4a5c4","src/unix/newlib/mod.rs":"d9f59ee9a994490122986b7ae5e3064bf9ce0b888349a388a50341a4c7069842","src/unix/notbsd/android/b32/arm.rs":"3625a32c7e58cfe683a53486fbe3d42d4e28f00bea31e19cb46ed2bb0b6a140b","src/unix/notbsd/android/b32/mod.rs":"2fbe398c1fb5251dda6213741a193e50aae4622807cb255d1dd2e82b536f0c65","src/unix/notbsd/android/b32/x86.rs":"ae2b7f1d6278caddc007749bb1d09ca33f7593478a0fd7fe98b457dae86c7814","src/unix/notbsd/android/b64/aarch64.rs":"63d65629d79371814910f691672ef593d20244ee09be26f1ebe07ee6212d0163","src/unix/notbsd/android/b64/mod.rs":"90d4f6b063fd4de42fd302cbc9d9902fd99ac1d71dc48cb8bc6ad7b4c902e481","src/unix/notbsd/android/b64/x86_64.rs":"5547aef8dcbaa5a932559f34606fd8d89f6c9c15173d2b1412c12d39b3c1045f","src/unix/notbsd/android/mod.rs":"eadc87bfea5f5e8ea50a3776b526cea2b0bfaf6d55240ba88134e19670f8a3a6","src/unix/notbsd/emscripten.rs":"d2d817af2b1496c1ee173f216c478a3a1c26223ef938797103bc50a265284662","src/unix/notbsd/linux/mips/mips32.rs":"a483ddfd10765b7d5090dc21686eee8842649cd21236828a42d634114885f5f9","src/unix/notbsd/linux/mips/mips64.rs":"9fff696e3943cf206b549d1ae13fa361828e9a8454e2d5730eeaa1c172ff370d","src/unix/notbsd/linux/mips/mod.rs":"af1b7bffff09aa5d8662e6452f72bc1e55b6639899b8c2a4be9cd1cfb245de01","src/unix/notbsd/linux/mod.rs":"081cb74be8b465c9cf86289f675cb7c6f7d7eee39713a6764e1871eabcbaee44","src/unix/notbsd/linux/musl/b32/arm.rs":"9d9bff31ab0925a1f62a20945d36a83b94ce3ab78dd202cd468bb31556b21725","src/unix/notbsd/linux/musl/b32/mips.rs":"cb38c463aebfc235f31880db158dd47c6e21f182a092d3f3087d92994b7711da","src/unix/notbsd/linux/musl/b32/mod.rs":"540928f168f145c136f9dd729ffa12b9d1838d9fe664fc642365d17d7fae648f","src/unix/notbsd/linux/musl/b32/powerpc.rs":"3930a2825657ac9208935341e29cfa62f6e37fc5c6b2c0d0dc9ac8c3b5569d59","src/unix/notbsd/linux/musl/b32/x86.rs":"c02dd333012cf65cb8873fa211eff5e63d466be55451a347510e3d4f50ed515e","src/unix/notbsd/linux/musl/b64/aarch64.rs":"4d79d86d11fbb8cb7a74084e410a1140e3c89dfc1842cdfb213f3a0ca93046df","src/unix/notbsd/linux/musl/b64/mod.rs":"caac00326693b372d6805e4dda239475e7fef36368881f372c006264844fda0d","src/unix/notbsd/linux/musl/b64/powerpc64.rs":"24514e41be4b5f5e0ffbe8a25a99dae8989489b607db59e8bfa345f8e65c9963","src/unix/notbsd/linux/musl/b64/x86_64.rs":"25340999290a63d564ec149532c905f59c312ec369f8806d6b15df66fa1b8857","src/unix/notbsd/linux/musl/mod.rs":"17c70acf9c6eabeb73916c2abb7d7e8b0310214090faae4a8dc2fd183a9b45ba","src/unix/notbsd/linux/other/b32/arm.rs":"d9892f7350b2978335f734f1cd2d7fed60f0f2e66aa05bee3f69549c031f8b14","src/unix/notbsd/linux/other/b32/mod.rs":"dac0fd1054a0fa163bce85df58c4ad4d222d8b7353bdb4364482b46c19991d03","src/unix/notbsd/linux/other/b32/powerpc.rs":"253fcd2f9978525285be1903cc08f3fec2dc3b12d1660a33e2995b4f6b810d1c","src/unix/notbsd/linux/other/b32/x86.rs":"49376e3ed0f3ff95c230ac20751911fe3c608dfe15c7c118b069fd7a954d8db9","src/unix/notbsd/linux/other/b64/aarch64.rs":"d57f3e06a0ac8affc5bf9d17e1f217ef1d1d714c947f47e647e0e038deaf48b2","src/unix/notbsd/linux/other/b64/mod.rs":"63e1a3fdf5f4d1b9820934ab344c91aed5e458e7e05908535d2e942d51a08bf8","src/unix/notbsd/linux/other/b64/not_x32.rs":"fa8636fb93eab230ed53bdec0a06f5b81d6d982cc0800103563c8c1eefcdb2d9","src/unix/notbsd/linux/other/b64/powerpc64.rs":"024057a910d0b885c63443165d34ce33f972973a9a8f5979906198180b19ad8b","src/unix/notbsd/linux/other/b64/sparc64.rs":"bb28f201e29c7f490a42dd2673eb8180fd82c1824a5d21aeb5aed674ffcc6e07","src/unix/notbsd/linux/other/b64/x32.rs":"06a26c5120ced30fc015c220799b67c4401be2f13fc6c7361bebd3d37ff4982d","src/unix/notbsd/linux/other/b64/x86_64.rs":"afba464e903d350325a1ca3d9d5af1659efc0ede83a43dbac4dbd60c522e2ad1","src/unix/notbsd/linux/other/mod.rs":"add154a8cfe9392d5a73b6055eb1419902e2b8b5458c22586a6ef8f90f89501b","src/unix/notbsd/linux/s390x.rs":"033cb7c4ee00af352698615de0248a5c6c9bcff57ba671ee22d31b70ef86fb4a","src/unix/notbsd/mod.rs":"134502158bab09d5189249ef400c9ddf7fdf5d1a1bd3134484ca82b80a0833e7","src/unix/solaris/mod.rs":"9c52a7479b56d3bc1f2c9ba5bb44f71ab1470989a54d3d0d85571e19489e4b7e","src/unix/uclibc/mips/mips32.rs":"9739c5fb47f389a0394ef08ee30da97a3de0a1300020731a8cc0a033616011b2","src/unix/uclibc/mips/mips64.rs":"230583280bbc7b3c7fcdb61244f51fa1af5944ca127c7cf83c598fe2313713d0","src/unix/uclibc/mips/mod.rs":"3f86061d05a8da7d923310550b7d40c6223f0c907d77edc86b7a78da1d647f76","src/unix/uclibc/mod.rs":"8cf2db30468476b917a60fdffe475917302875a3a4150f29a042ebee182545d1","src/unix/uclibc/x86_64/l4re.rs":"68fd3a833fd1f7caf784a084224f384bdbdfb8b5a14ef94c4f5155409afb3439","src/unix/uclibc/x86_64/mod.rs":"419182836aedd426a5c9e6b8667058adf86ac8f43af73ce8d00c503f8ff8f414","src/unix/uclibc/x86_64/other.rs":"f03b47842896f2f3ae6f8ebdcbcf0276454f880349d9cf00e3d304f8136893c5","src/windows.rs":"e41357d610608bad81abf285306ad8b127b6f02d5132f63c4942861980b47d59"},"package":"76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d"}
1247 \ No newline at end of file
1248 --- third_party/rust/libc/src/unix/bsd/freebsdlike/dragonfly/mod.rs.orig 2019-03-26 21:19:52 UTC
1249 +++ third_party/rust/libc/src/unix/bsd/freebsdlike/dragonfly/mod.rs
1251 +pub type c_char = i8;
1252 pub type clock_t = u64;
1253 pub type ino_t = u64;
1254 pub type lwpid_t = i32;
1255 @@ -210,6 +211,12 @@ s! {
1256 pub sdl_rcf: ::c_ushort,
1257 pub sdl_route: [::c_ushort; 16],
1260 + pub struct stack_t {
1261 + pub ss_sp: *mut ::c_char,
1262 + pub ss_size: ::size_t,
1263 + pub ss_flags: ::c_int,
1267 pub const RAND_MAX: ::c_int = 0x7fff_ffff;
1268 --- third_party/rust/libc/src/unix/bsd/freebsdlike/freebsd/aarch64.rs.orig 2019-03-26 21:19:52 UTC
1269 +++ third_party/rust/libc/src/unix/bsd/freebsdlike/freebsd/aarch64.rs
1271 +pub type c_char = u8;
1272 pub type c_long = i64;
1273 pub type c_ulong = u64;
1274 pub type time_t = i64;
1275 --- /dev/null 2019-04-04 01:04:41 UTC
1276 +++ third_party/rust/libc/src/unix/bsd/freebsdlike/freebsd/arm.rs
1278 +pub type c_char = u8;
1279 +pub type c_long = i32;
1280 +pub type c_ulong = u32;
1281 +pub type time_t = i64;
1282 +pub type suseconds_t = i32;
1286 + pub st_dev: ::dev_t,
1287 + pub st_ino: ::ino_t,
1288 + pub st_mode: ::mode_t,
1289 + pub st_nlink: ::nlink_t,
1290 + pub st_uid: ::uid_t,
1291 + pub st_gid: ::gid_t,
1292 + pub st_rdev: ::dev_t,
1293 + pub st_atime: ::time_t,
1294 + pub st_atime_nsec: ::c_long,
1295 + pub st_atime_pad: ::c_long,
1296 + pub st_mtime: ::time_t,
1297 + pub st_mtime_nsec: ::c_long,
1298 + pub st_mtime_pad: ::c_long,
1299 + pub st_ctime: ::time_t,
1300 + pub st_ctime_nsec: ::c_long,
1301 + pub st_ctime_pad: ::c_long,
1302 + pub st_size: ::off_t,
1303 + pub st_blocks: ::blkcnt_t,
1304 + pub st_blksize: ::blksize_t,
1305 + pub st_flags: ::fflags_t,
1306 + pub st_gen: ::uint32_t,
1307 + pub st_lspare: ::int32_t,
1308 + pub st_birthtime: ::time_t,
1309 + pub st_birthtime_nsec: ::c_long,
1310 + pub st_birthtime_pad: ::c_long,
1314 +pub const MAP_32BIT: ::c_int = 0x00080000;
1315 --- third_party/rust/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs.orig 2019-03-26 21:19:52 UTC
1316 +++ third_party/rust/libc/src/unix/bsd/freebsdlike/freebsd/mod.rs
1317 @@ -182,6 +182,12 @@ s! {
1318 pub sdl_slen: ::c_uchar,
1319 pub sdl_data: [::c_char; 46],
1322 + pub struct stack_t {
1323 + pub ss_sp: *mut ::c_void,
1324 + pub ss_size: ::size_t,
1325 + pub ss_flags: ::c_int,
1329 pub const SIGEV_THREAD_ID: ::c_int = 4;
1330 @@ -1034,6 +1040,12 @@ cfg_if! {
1331 } else if #[cfg(target_arch = "aarch64")] {
1333 pub use self::aarch64::*;
1334 + } else if #[cfg(target_arch = "arm")] {
1336 + pub use self::arm::*;
1337 + } else if #[cfg(target_arch = "powerpc64")] {
1339 + pub use self::powerpc64::*;
1341 // Unknown target_arch
1343 --- /dev/null 2019-04-04 01:04:41 UTC
1344 +++ third_party/rust/libc/src/unix/bsd/freebsdlike/freebsd/powerpc64.rs
1346 +pub type c_char = u8;
1347 +pub type c_long = i64;
1348 +pub type c_ulong = u64;
1349 +pub type time_t = i64;
1350 +pub type suseconds_t = i64;
1354 + pub st_dev: ::dev_t,
1355 + pub st_ino: ::ino_t,
1356 + pub st_mode: ::mode_t,
1357 + pub st_nlink: ::nlink_t,
1358 + pub st_uid: ::uid_t,
1359 + pub st_gid: ::gid_t,
1360 + pub st_rdev: ::dev_t,
1361 + pub st_atime: ::time_t,
1362 + pub st_atime_nsec: ::c_long,
1363 + pub st_mtime: ::time_t,
1364 + pub st_mtime_nsec: ::c_long,
1365 + pub st_ctime: ::time_t,
1366 + pub st_ctime_nsec: ::c_long,
1367 + pub st_size: ::off_t,
1368 + pub st_blocks: ::blkcnt_t,
1369 + pub st_blksize: ::blksize_t,
1370 + pub st_flags: ::fflags_t,
1371 + pub st_gen: ::uint32_t,
1372 + pub st_lspare: ::int32_t,
1373 + pub st_birthtime: ::time_t,
1374 + pub st_birthtime_nsec: ::c_long,
1378 +pub const MAP_32BIT: ::c_int = 0x00080000;
1379 --- third_party/rust/libc/src/unix/bsd/freebsdlike/freebsd/x86.rs.orig 2019-03-26 21:19:52 UTC
1380 +++ third_party/rust/libc/src/unix/bsd/freebsdlike/freebsd/x86.rs
1382 +pub type c_char = i8;
1383 pub type c_long = i32;
1384 pub type c_ulong = u32;
1385 pub type time_t = i32;
1386 --- third_party/rust/libc/src/unix/bsd/freebsdlike/freebsd/x86_64.rs.orig 2019-03-26 21:19:52 UTC
1387 +++ third_party/rust/libc/src/unix/bsd/freebsdlike/freebsd/x86_64.rs
1389 +pub type c_char = i8;
1390 pub type c_long = i64;
1391 pub type c_ulong = u64;
1392 pub type time_t = i64;
1393 --- third_party/rust/libc/src/unix/bsd/freebsdlike/mod.rs.orig 2019-03-26 21:19:52 UTC
1394 +++ third_party/rust/libc/src/unix/bsd/freebsdlike/mod.rs
1396 -pub type c_char = i8;
1397 pub type dev_t = u32;
1398 pub type mode_t = u16;
1399 pub type pthread_attr_t = *mut ::c_void;
1400 @@ -82,13 +81,6 @@ s! {
1401 pub sa_mask: sigset_t,
1404 - pub struct stack_t {
1405 - // In FreeBSD 11 and later, ss_sp is actually a void*
1406 - pub ss_sp: *mut ::c_char,
1407 - pub ss_size: ::size_t,
1408 - pub ss_flags: ::c_int,
1411 pub struct sched_param {
1412 pub sched_priority: ::c_int,
1416 [FILE:806:patches/patch-bug1530659]
1417 Always pass -Isilk/fixed to unbreak on aarch64 after bug 1522016
1419 diff --git media/libopus/moz.build media/libopus/moz.build
1420 index cc82c8e6a616..e83a70f94e0a 100644
1421 --- media/libopus/moz.build.orig 2019-03-26 21:19:47 UTC
1422 +++ media/libopus/moz.build
1423 @@ -63,6 +63,8 @@ LOCAL_INCLUDES += [
1432 @@ -76,15 +78,9 @@ UNIFIED_SOURCES += opus_sources
1433 SOURCES += opus_nonunified_sources
1435 if CONFIG['MOZ_SAMPLE_TYPE_FLOAT32']:
1436 - LOCAL_INCLUDES += [
1439 UNIFIED_SOURCES += silk_sources_float
1440 UNIFIED_SOURCES += opus_sources_float
1442 - LOCAL_INCLUDES += [
1445 UNIFIED_SOURCES += silk_sources_fixed
1447 if CONFIG['CPU_ARCH'] in ('x86', 'x86_64'):
1450 [FILE:3587:patches/patch-bug1532024]
1452 Author: sotaro <sotaro.ikeda.g@gmail.com>
1453 Date: Wed Mar 6 08:17:51 2019 +0000
1455 Bug 1532024 - Handle a case that GetRemoteRenderer() returned nullptr r=stransky
1457 Differential Revision: https://phabricator.services.mozilla.com/D21831
1460 extra : moz-landing-system : lando
1462 widget/gtk/nsWindow.cpp | 27 ++++++++++++++++++---------
1463 widget/gtk/nsWindow.h | 3 +++
1464 2 files changed, 21 insertions(+), 9 deletions(-)
1466 diff --git widget/gtk/nsWindow.cpp widget/gtk/nsWindow.cpp
1467 index 96faeea1cf87..46956412f341 100644
1468 --- widget/gtk/nsWindow.cpp.orig 2019-04-04 01:04:41 UTC
1469 +++ widget/gtk/nsWindow.cpp
1470 @@ -399,6 +399,10 @@ nsWindow::nsWindow() {
1472 #endif /* MOZ_X11 */
1475 + mNeedsUpdatingEGLSurface = false;
1478 if (!gGlobalsInitialized) {
1479 gGlobalsInitialized = true;
1481 @@ -1870,12 +1874,14 @@ static bool ExtractExposeRegion(LayoutDe
1482 void nsWindow::WaylandEGLSurfaceForceRedraw() {
1483 MOZ_RELEASE_ASSERT(NS_IsMainThread());
1485 - if (mIsDestroyed) {
1486 + if (mIsDestroyed || !mNeedsUpdatingEGLSurface) {
1490 - if (CompositorBridgeChild* remoteRenderer = GetRemoteRenderer()) {
1491 + if (CompositorBridgeChild *remoteRenderer = GetRemoteRenderer()) {
1492 + MOZ_ASSERT(mCompositorWidgetDelegate);
1493 if (mCompositorWidgetDelegate) {
1494 + mNeedsUpdatingEGLSurface = false;
1495 mCompositorWidgetDelegate->RequestsUpdatingEGLSurface();
1497 remoteRenderer->SendForcePresent();
1498 @@ -3472,10 +3478,10 @@ nsresult nsWindow::Create(nsIWidget *aPa
1500 if (!mIsX11Display && ComputeShouldAccelerate()) {
1501 RefPtr<nsWindow> self(this);
1502 - moz_container_set_initial_draw_callback(mContainer,
1503 - [self]() -> void {
1504 - self->WaylandEGLSurfaceForceRedraw();
1506 + moz_container_set_initial_draw_callback(mContainer, [self]() -> void {
1507 + self->mNeedsUpdatingEGLSurface = true;
1508 + self->WaylandEGLSurfaceForceRedraw();
1513 @@ -6043,6 +6049,9 @@ void nsWindow::SetCompositorWidgetDelega
1514 MOZ_ASSERT(mCompositorWidgetDelegate,
1515 "nsWindow::SetCompositorWidgetDelegate called with a "
1516 "non-PlatformCompositorWidgetDelegate");
1518 + WaylandEGLSurfaceForceRedraw();
1521 mCompositorWidgetDelegate = nullptr;
1523 @@ -6528,8 +6537,7 @@ nsWindow::CSDSupportLevel nsWindow::GetS
1524 // Check for Mutter regression on X.org (Bug 1530252). In that case we
1525 // don't hide system titlebar by default as we can't draw transparent
1526 // corners reliably.
1527 -bool nsWindow::TitlebarCanUseShapeMask()
1529 +bool nsWindow::TitlebarCanUseShapeMask() {
1530 static int canUseShapeMask = -1;
1531 if (canUseShapeMask != -1) {
1532 return canUseShapeMask;
1533 @@ -6559,7 +6567,8 @@ bool nsWindow::HideTitlebarByDefault() {
1534 // When user defined widget.default-hidden-titlebar don't do any
1535 // heuristics and just follow it.
1536 if (Preferences::HasUserValue("widget.default-hidden-titlebar")) {
1537 - hideTitlebar = Preferences::GetBool("widget.default-hidden-titlebar", false);
1539 + Preferences::GetBool("widget.default-hidden-titlebar", false);
1540 return hideTitlebar;
1543 --- widget/gtk/nsWindow.h.orig 2019-04-04 01:04:41 UTC
1544 +++ widget/gtk/nsWindow.h
1545 @@ -433,6 +433,9 @@ class nsWindow final : public nsBaseWidg
1550 + bool mNeedsUpdatingEGLSurface;
1554 void DestroyChildWindows();
1557 [FILE:8116:patches/patch-bug847568]
1558 # Allow building against system-wide graphite2/harfbuzz.
1560 diff --git config/system-headers.mozbuild config/system-headers.mozbuild
1561 index 7620b4d00623..09d3db5ca8c0 100644
1562 --- config/system-headers.mozbuild.orig 2019-03-26 21:19:42 UTC
1563 +++ config/system-headers.mozbuild
1564 @@ -1304,6 +1304,19 @@ if CONFIG['MOZ_ENABLE_CONTENTMANAGER']:
1565 'SelectSingleContentItemPage.h',
1568 +if CONFIG['MOZ_SYSTEM_GRAPHITE2']:
1569 + system_headers += [
1570 + 'graphite2/Font.h',
1571 + 'graphite2/Segment.h',
1574 +if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
1575 + system_headers += [
1576 + 'harfbuzz/hb-glib.h',
1577 + 'harfbuzz/hb-ot.h',
1581 if CONFIG['MOZ_SYSTEM_LIBVPX']:
1583 'vpx_mem/vpx_mem.h',
1584 --- dom/base/moz.build.orig 2019-03-26 21:19:43 UTC
1585 +++ dom/base/moz.build
1586 @@ -518,6 +518,9 @@ if CONFIG['MOZ_BUILD_APP'] in ['browser'
1587 if CONFIG['MOZ_X11']:
1588 CXXFLAGS += CONFIG['TK_CFLAGS']
1590 +if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
1591 + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
1593 GENERATED_FILES += [
1594 'PropertyUseCounterMap.inc',
1596 --- gfx/graphite2/moz-gr-update.sh.orig 2019-03-26 21:19:44 UTC
1597 +++ gfx/graphite2/moz-gr-update.sh
1601 # Script used to update the Graphite2 library in the mozilla source tree
1602 +# and bump version for --with-system-graphite2
1604 # This script lives in gfx/graphite2, along with the library source,
1605 # but must be run from the top level of the mozilla-central tree.
1606 @@ -37,12 +38,16 @@ echo "See" $0 "for update procedure." >>
1607 #find gfx/graphite2/ -name "*.cpp" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \;
1608 #find gfx/graphite2/ -name "*.h" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \;
1610 +# chase version for --with-system-graphite2
1611 +perl -p -i -e "s/[0-9]+\,[0-9]+\,[0-9]+/$RELEASE/ and tr/./,/ \
1612 + if /GR2_VERSION_REQUIRE/" old-configure.in
1614 # summarize what's been touched
1615 echo Updated to $RELEASE.
1616 echo Here is what changed in the gfx/graphite2 directory:
1619 -hg stat gfx/graphite2
1620 +hg stat old-configure.in gfx/graphite2
1623 echo If gfx/graphite2/src/files.mk has changed, please make corresponding
1624 --- gfx/harfbuzz/README-mozilla.orig 2019-03-26 21:19:44 UTC
1625 +++ gfx/harfbuzz/README-mozilla
1626 @@ -15,3 +15,8 @@ from within the gfx/harfbuzz directory.
1628 If the collection of source files changes, manual updates to moz.build may be
1629 needed as we don't use the upstream makefiles.
1631 +The in-tree copy may be omitted during build by --with-system-harfbuzz.
1632 +Make sure to keep pkg-config version check within toolkit/moz.configure in sync
1633 +with checkout version or increment latest tag by one if it's not based
1634 +on upstream release.
1635 --- gfx/moz.build.orig 2019-03-26 21:19:44 UTC
1637 @@ -10,6 +10,12 @@ with Files('**'):
1638 if CONFIG['MOZ_TREE_CAIRO']:
1641 +if not CONFIG['MOZ_SYSTEM_GRAPHITE2']:
1642 + DIRS += ['graphite2/src' ]
1644 +if not CONFIG['MOZ_SYSTEM_HARFBUZZ']:
1645 + DIRS += ['harfbuzz/src']
1650 @@ -18,8 +24,6 @@ DIRS += [
1659 --- gfx/skia/generate_mozbuild.py.orig 2019-03-26 21:19:44 UTC
1660 +++ gfx/skia/generate_mozbuild.py
1661 @@ -138,6 +138,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang
1662 '-Wno-unused-private-field',
1665 +if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
1666 + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
1668 if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk3', 'android'):
1669 CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
1670 CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
1671 --- gfx/skia/moz.build.orig 2019-03-26 21:19:44 UTC
1672 +++ gfx/skia/moz.build
1673 @@ -818,6 +818,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang
1674 '-Wno-unused-private-field',
1677 +if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
1678 + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
1680 if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk3', 'android'):
1681 CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
1682 CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
1683 --- gfx/thebes/moz.build.orig 2019-03-26 21:19:44 UTC
1684 +++ gfx/thebes/moz.build
1685 @@ -276,7 +276,13 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk3
1687 LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES']
1689 -DEFINES['GRAPHITE2_STATIC'] = True
1690 +if CONFIG['MOZ_SYSTEM_GRAPHITE2']:
1691 + CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS']
1693 + DEFINES['GRAPHITE2_STATIC'] = True
1695 +if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
1696 + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
1698 if CONFIG['CC_TYPE'] == 'clang':
1699 # Suppress warnings from Skia header files.
1700 --- intl/unicharutil/util/moz.build.orig 2019-03-26 21:19:44 UTC
1701 +++ intl/unicharutil/util/moz.build
1702 @@ -25,4 +25,7 @@ UNIFIED_SOURCES += [
1703 'nsUnicodeProperties.cpp',
1706 +if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
1707 + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
1709 FINAL_LIBRARY = 'xul'
1710 --- netwerk/dns/moz.build.orig 2019-03-26 21:19:48 UTC
1711 +++ netwerk/dns/moz.build
1712 @@ -79,3 +79,6 @@ USE_LIBS += ['icu']
1714 if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
1715 CXXFLAGS += ['-Wno-error=shadow']
1717 +if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
1718 + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
1719 --- old-configure.in.orig 2019-03-26 21:19:48 UTC
1720 +++ old-configure.in
1721 @@ -3035,6 +3035,27 @@ dnl ====================================
1722 AC_SUBST(MOZ_LINUX_32_SSE2_STARTUP_ERROR)
1724 dnl ========================================================
1725 +dnl Check for graphite2
1726 +dnl ========================================================
1727 +if test -n "$MOZ_SYSTEM_GRAPHITE2"; then
1728 + dnl graphite2.pc has bogus version, check manually
1729 + _SAVE_CFLAGS=$CFLAGS
1730 + CFLAGS="$CFLAGS $MOZ_GRAPHITE2_CFLAGS"
1731 + AC_TRY_COMPILE([ #include <graphite2/Font.h>
1732 + #define GR2_VERSION_REQUIRE(major,minor,bugfix) \
1733 + ( GR2_VERSION_MAJOR * 10000 + GR2_VERSION_MINOR \
1734 + * 100 + GR2_VERSION_BUGFIX >= \
1735 + (major) * 10000 + (minor) * 100 + (bugfix) )
1737 + #if !GR2_VERSION_REQUIRE(1,3,12)
1738 + #error "Insufficient graphite2 version."
1741 + [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])])
1742 + CFLAGS=$_SAVE_CFLAGS
1745 +dnl ========================================================
1746 dnl Check for pixman and cairo
1747 dnl ========================================================
1749 --- toolkit/library/moz.build.orig 2019-03-26 21:19:52 UTC
1750 +++ toolkit/library/moz.build
1751 @@ -231,6 +231,12 @@ if CONFIG['MOZ_SYSTEM_PNG']:
1752 if CONFIG['MOZ_SYSTEM_WEBP']:
1753 OS_LIBS += CONFIG['MOZ_WEBP_LIBS']
1755 +if CONFIG['MOZ_SYSTEM_GRAPHITE2']:
1756 + OS_LIBS += CONFIG['MOZ_GRAPHITE2_LIBS']
1758 +if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
1759 + OS_LIBS += CONFIG['MOZ_HARFBUZZ_LIBS']
1761 if CONFIG['MOZ_SYSTEM_LIBEVENT']:
1762 OS_LIBS += CONFIG['MOZ_LIBEVENT_LIBS']
1764 --- toolkit/moz.configure.orig 2019-03-26 21:19:52 UTC
1765 +++ toolkit/moz.configure
1766 @@ -910,6 +910,26 @@ add_old_configure_assignment('FT2_LIBS',
1767 add_old_configure_assignment('FT2_CFLAGS',
1771 +# ==============================================================
1772 +option('--with-system-graphite2',
1773 + help="Use system graphite2 (located with pkgconfig)")
1775 +system_graphite2 = pkg_check_modules('MOZ_GRAPHITE2', 'graphite2',
1776 + when='--with-system-graphite2')
1778 +set_config('MOZ_SYSTEM_GRAPHITE2', depends_if(system_graphite2)(lambda _: True))
1781 +# ==============================================================
1782 +option('--with-system-harfbuzz',
1783 + help="Use system harfbuzz (located with pkgconfig)")
1785 +system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 2.3.1',
1786 + when='--with-system-harfbuzz')
1788 +set_config('MOZ_SYSTEM_HARFBUZZ', depends_if(system_harfbuzz)(lambda _: True))
1790 # Marionette remote protocol
1791 # ==============================================================
1795 [FILE:855:patches/patch-dom_media_flac_FlacDecoder.cpp]
1796 Enable FLAC on platforms without ffvpx like powerpc*
1798 diff --git dom/media/flac/FlacDecoder.cpp dom/media/flac/FlacDecoder.cpp
1799 index 53fc3c9937f7..b23771ab80fa 100644
1800 --- dom/media/flac/FlacDecoder.cpp.orig 2019-03-26 21:19:43 UTC
1801 +++ dom/media/flac/FlacDecoder.cpp
1803 #include "FlacDecoder.h"
1804 #include "MediaContainerType.h"
1805 #include "mozilla/StaticPrefs.h"
1806 +#include "PDMFactory.h"
1810 /* static */ bool FlacDecoder::IsEnabled() {
1812 return StaticPrefs::MediaFlacEnabled();
1813 +#elif defined(MOZ_FFMPEG)
1814 + RefPtr<PDMFactory> platform = new PDMFactory();
1815 + return StaticPrefs::MediaFlacEnabled() && platform->SupportsMimeType(NS_LITERAL_CSTRING("audio/flac"),
1816 + /* DecoderDoctorDiagnostics* */ nullptr);
1818 // Until bug 1295886 is fixed.
1822 [FILE:893:patches/patch-env-api-keys]
1823 # Accept API keys from environment like before bug 1294585
1825 --- build/moz.configure/keyfiles.configure.orig 2019-03-26 21:19:42 UTC
1826 +++ build/moz.configure/keyfiles.configure
1827 @@ -18,6 +18,7 @@ def keyfile(desc, default=None, help=Non
1828 @checking('for the %s key' % desc, lambda x: x and x is not no_key)
1829 @imports(_from='__builtin__', _import='open')
1830 @imports(_from='__builtin__', _import='IOError')
1831 + @imports(_from='os', _import='environ')
1835 @@ -28,7 +29,7 @@ def keyfile(desc, default=None, help=Non
1836 raise FatalCheckError("'%s' is empty." % value[0])
1837 except IOError as e:
1838 raise FatalCheckError("'%s': %s." % (value[0], e.strerror))
1840 + return environ.get('MOZ_%s_KEY' % desc.upper().replace(' ', '_')) or no_key
1846 [FILE:890:patches/patch-gfx_skia_skia_src_core_SkCpu.cpp]
1847 Regressed by https://svnweb.freebsd.org/changeset/base/324815
1849 gfx/skia/skia/src/core/SkCpu.cpp:81:27: error: use of undeclared identifier 'getauxval'
1850 uint32_t hwcaps = getauxval(AT_HWCAP);
1853 --- gfx/skia/skia/src/core/SkCpu.cpp.orig 2019-03-26 21:19:44 UTC
1854 +++ gfx/skia/skia/src/core/SkCpu.cpp
1859 +#elif defined(SK_CPU_ARM64) && defined(__FreeBSD__)
1860 + #include <machine/armreg.h>
1862 + static uint32_t read_cpu_features() {
1863 + uint32_t features = 0;
1864 + uint64_t id_aa64isar0;
1866 + id_aa64isar0 = READ_SPECIALREG(ID_AA64ISAR0_EL1);
1867 + if (ID_AA64ISAR0_CRC32(id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE) {
1868 + features |= SkCpu::CRC32;
1873 #elif defined(SK_CPU_ARM64) && __has_include(<sys/auxv.h>)
1874 #include <sys/auxv.h>
1878 [FILE:316:patches/patch-ipc_chromium_src_base_platform__thread__posix.cc]
1879 --- ipc/chromium/src/base/platform_thread_posix.cc.orig 2019-03-26 21:19:44 UTC
1880 +++ ipc/chromium/src/base/platform_thread_posix.cc
1882 #elif defined(OS_LINUX)
1883 # include <sys/syscall.h>
1884 # include <sys/prctl.h>
1885 +#elif defined(OS_DRAGONFLY)
1886 +# include <sys/lwp.h>
1889 #if !defined(OS_MACOSX)
1892 [FILE:613:patches/patch-ipc_chromium_src_base_shared__memory__posix.cc]
1893 --- ipc/chromium/src/base/shared_memory_posix.cc.orig 2019-03-26 21:19:44 UTC
1894 +++ ipc/chromium/src/base/shared_memory_posix.cc
1895 @@ -83,6 +83,11 @@ bool SharedMemory::AppendPosixShmPrefix(
1896 StringAppendF(str, "snap.%s.", kSnap);
1899 +# ifdef OS_DRAGONFLY
1900 + // DragonFly BSD has a userland IPC implementation, we need to prefix the
1901 + // path to shm_open(3), preferably with '/tmp'
1902 + StringAppendF(str, "tmp/");
1904 // Hopefully the "implementation defined" name length limit is long
1906 StringAppendF(str, "org.mozilla.ipc.%d.", static_cast<int>(pid));
1909 [FILE:575:patches/patch-js_src_old-configure.in]
1910 --- js/src/old-configure.in.orig 2019-03-26 21:19:45 UTC
1911 +++ js/src/old-configure.in
1912 @@ -852,7 +852,7 @@ dnl Checks for header files.
1913 dnl ========================================================
1915 case "$target_os" in
1917 +freebsd*|dragonfly*)
1918 # for stuff like -lXshm
1919 CPPFLAGS="${CPPFLAGS} ${X_CFLAGS}"
1921 @@ -971,7 +971,7 @@ then
1926 + *-*-freebsd*|*-*-dragonfly*)
1927 AC_DEFINE(_REENTRANT)
1928 AC_DEFINE(_THREAD_SAFE)
1929 dnl -pthread links in -lpthread, so don't specify it explicitly.
1932 [FILE:297:patches/patch-media_libcubeb_src_cubeb__jack.cpp]
1933 --- media/libcubeb/src/cubeb_jack.cpp.orig 2019-03-26 21:19:47 UTC
1934 +++ media/libcubeb/src/cubeb_jack.cpp
1937 #define _DEFAULT_SOURCE
1939 -#ifndef __FreeBSD__
1940 +#if !(defined __FreeBSD__ || defined __DragonFly__)
1941 #define _POSIX_SOURCE
1946 [FILE:565:files/pkg-deinstall-single.in]
1953 [ "x$1" = "x" ] && exit 1
1954 [ "x$2" != "xDEINSTALL" ] && exit 0
1958 rm -rf ${MOZDIR}/chrome/overlayinfo
1959 rm -f ${MOZDIR}/chrome/*.rdf
1960 rm -f ${MOZDIR}/component.reg
1961 rm -f ${MOZDIR}/components/*.dat
1962 rm -f ${MOZDIR}/components.ini
1963 rm -f ${MOZDIR}/defaults.ini
1964 rm -f ${MOZDIR}/chrome/app-chrome.manifest
1965 rm -rf ${MOZDIR}/updates
1966 find %%MOZDIR%%/plugins/ -depth 1 -type l -delete > /dev/null 2>&1
1967 find %%MOZDIR%%/extensions/ -depth 1 -type l -delete > /dev/null 2>&1
1968 rmdir ${MOZDIR}/chrome
1974 [FILE:719:files/pkg-install-single.in]
1981 [ "x$1" = "x" ] && exit 1
1982 [ "x$2" != "xPOST-INSTALL" ] && exit 0
1985 MOZBIN=${MOZDIR}/%%MOZILLA_BIN%%
1986 REGXPCOM=${MOZDIR}/regxpcom
1987 REGCHROME=${MOZDIR}/regchrome
1989 rm -rf ${MOZDIR}/chrome/overlayinfo
1990 rm -f ${MOZDIR}/chrome/*.rdf
1991 mkdir -p ${MOZDIR}/chrome/overlayinfo
1992 rm -f ${MOZDIR}/component.reg
1994 cd ${MOZDIR} || exit 1
1995 if [ -f ${REGXPCOM} ]; then
1996 ./run-mozilla.sh ${REGXPCOM} || true
1998 if [ -f ${REGCHROME} ]; then
1999 ./run-mozilla.sh ${REGCHROME} || true
2001 if [ -f ${MOZBIN} -a "${1%-*}" = "nvu" ]; then
2002 ./run-mozilla.sh ${MOZBIN} -register > /dev/null 2>&1
2004 cp -R %%LOCALBASE%%/lib/xpi/symlinks/%%MOZILLA%%/ %%MOZDIR%%/extensions/ > /dev/null 2>&1