This is a clean copy of libevent, vendored via moz.yaml. Update it with: ./mach vendor ipc/chromium/src/third_party/libevent/moz.yaml That refreshes the upstream sources, preserves the Mozilla-maintained files listed below, and re-applies patches/prevent-use-of-evsig.patch (an intentional crash that prevents use of libevent's signal handling code; see bug 1616462). Only libevent's core event loop is compiled into libxul; see the source list in ipc/chromium/src/third_party/moz.build. The per-platform event2/event-config.h headers and evconfig-private.h are generated by hand, are not part of the upstream tree, and are preserved across a re-vendor (the "keep" list in moz.yaml): - android/event2/event-config.h - bsd/event2/event-config.h - linux/event2/event-config.h - mac/event2/event-config.h - solaris/event2/event-config.h - evconfig-private.h For a routine version bump, update the EVENT__*VERSION macros in each of these headers to match the new release, and fold in any EVENT__ macros that upstream added or removed. When adding a new platform, or if an upstream config change affects these headers, regenerate the base header by running "./configure" and "make" on the target platform (event-config.h lands in include/event2/, evconfig-private.h in the root), then re-apply the Mozilla customizations these headers carry: - EVENT__SIZEOF_* are kept valid for both 32- and 64-bit builds using __LP64__ (Linux, Android, and BSD; Mac is 64-bit only). The CHECK_EVENT_SIZEOF assertions in message_pump_libevent.cc enforce this; a newly added constant needs a new assertion there. - EVENT__HAVE_ARC4RANDOM and EVENT__HAVE_ARC4RANDOM_BUF in the Linux header are guarded rather than hardcoded (see bug 1782988).