1 # Buildsheet autogenerated by ravenadm tool -- Do not edit.
5 KEYWORDS= mail net_im news
7 SDESC[standard]= Mozilla Thunderbird mail/newsgroup client
8 HOMEPAGE= https://www.thunderbird.net/
12 SITES[main]= MOZILLA/thunderbird/releases/91.5.0/source
13 DISTFILE[1]= thunderbird-91.5.0.source.tar.xz:main
15 SPKGS[standard]= single
17 OPTIONS_AVAILABLE= none
18 OPTIONS_STANDARD= none
20 BUILD_DEPENDS= rust:single:standard
21 cbindgen:single:standard
22 autoconf213:single:standard
26 nodejs:primary:standard
27 libvpx:single:standard
28 evdev-proto:single:standard
29 python-sqlite3:single:python_used
30 BUILDRUN_DEPENDS= nss:primary:standard
32 libffi:single:standard
33 libproxy:single:standard
34 libevent:single:standard
35 libcanberra:primary:standard
36 libnotify:primary:standard
37 harfbuzz:primary:standard
41 ffmpeg:primary:standard
42 dbus-glib:primary:standard
43 startup-notification:single:standard
45 USES= cpe desktop-utils:single gmake jpeg png zlib
46 perl:build pkgconfig iconv bz2 python:build
47 gettext-runtime clang:keepcc
48 GNOME_COMPONENTS= gconf gtk2 gtk3 gdkpixbuf pango
49 XORG_COMPONENTS= x11 xcb xcomposite xdamage xext xfixes xrender xt
53 LICENSE_TERMS= single:{{WRKSRC}}/toolkit/content/license.html
54 LICENSE_FILE= MPL:stock
58 FPC_EQUIVALENT= mail/thunderbird
61 CONFIGURE_OUTSOURCE= yes
62 CONFIGURE_ENV= PYTHON3={{PYTHON_CMD}}
63 SETUPTOOLS_USE_DISTUTILS=stdlib
65 MAKE_ENV= PYTHON3={{PYTHON_CMD}}
68 QMAKE_ARGS= --prefix="{{PREFIX}}"
73 --with-system-png="{{LOCALBASE}}"
74 --with-system-jpeg="{{LOCALBASE}}"
75 --with-system-libevent
76 --with-system-harfbuzz
77 --with-system-graphite2
81 --enable-system-pixman
82 --enable-install-strip
87 --enable-official-branding
88 --enable-application=comm/mail
89 --enable-update-channel=release
94 --disable-debug-symbols
103 VAR_OPSYS[linux]= QMAKE_ARGS=--disable-elf-hack
106 ${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
107 ${WRKSRC}/comm/mail/app/nsMailApp.cpp \
108 ${WRKSRC}/browser/app/nsBrowserApp.cpp
109 (cd ${WRKSRC}/gfx/angle/checkout/src/compiler/translator && \
110 ${REINPLACE_CMD} -e 's|<math.h>|<cmath>|' \
111 InfoSink.h IntermNode.cpp)
113 ${REINPLACE_CMD} -e 's|MOZ_SCTP|MOZ_DISABLE_SCTP|' \
114 ${WRKSRC}/netwerk/moz.build
115 # alsa headers use 'u_int32_t' and other BerkeleyDB/nvi
116 # fixed types (_XOPEN_SOURCE)
117 ${REINPLACE_CMD} -e 's@_XOPEN_SOURCE@&___@g' \
118 ${WRKSRC}/media/libcubeb/src/cubeb_alsa.c
119 ${REINPLACE_CMD} -e 's@_POSIX_SOURCE@&___@g' \
120 ${WRKSRC}/media/libcubeb/src/cubeb_jack.cpp
121 # Set mozilla options
122 @${ECHO_CMD} "--=> Setting configuration <=--"
123 @for arg in ${QMAKE_ARGS}; do \
124 ${ECHO_CMD} ".mozconfig << $$arg" ;\
125 ${ECHO_CMD} ac_add_options $$arg >> ${WRKSRC}/.mozconfig ;\
127 @${ECHO_CMD} LDFLAGS=\"-Wl,-rpath,${PREFIX}/lib/thunderbird\" \
128 >> ${WRKSRC}/.mozconfig
129 # disable rust checksums
130 ${REINPLACE_CMD} -e 's/"files":{[^}]*}/"files":{}/' \
131 ${WRKSRC}/third_party/rust/packed_simd/.cargo-checksum.json
133 post-patch-dragonfly:
134 ${REINPLACE_CMD} -e '/<malloc.h>/d' \
135 ${WRKSRC}/comm/ldap/c-sdk/libraries/liblber/lber-int.h
138 ${MKDIR} ${STAGEDIR}${PREFIX}/share/applications
139 ${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps
140 ${INSTALL_DATA} ${FILESDIR}/thunderbird.desktop \
141 ${STAGEDIR}${PREFIX}/share/applications
142 (cd ${STAGEDIR}${PREFIX}/share/pixmaps && ${LN} -sf \
143 ../../lib/thunderbird/chrome/icons/default/default48.png \
145 # regenerate symlink to avoid absolute paths
146 ${RM} ${STAGEDIR}${PREFIX}/bin/thunderbird
147 (cd ${STAGEDIR}${PREFIX}/bin && \
148 ${LN} -sf ../lib/thunderbird/thunderbird thunderbird)
151 (cd ${WRKSRC} && ${LOCALBASE}/bin/autoconf-2.13)
152 (cd ${WRKSRC}/js/src/ && ${LOCALBASE}/bin/autoconf-2.13)
154 [FILE:391:descriptions/desc.single]
155 Thunderbird is a free and open source email, newsfeed, chat, and
156 calendaring client, that's easy to set up and customize. One of the core
157 principles of Thunderbird is the use and promotion of open standards -
158 this focus is a rejection of our world of closed platforms and services
159 that can't communicate with each other. We want our users to have
160 freedom and choice in how they communicate.
164 b89a8e1b57d5be828a7346e817120d7c763a258a2397a23393b7ceb3ce810ab2 405937856 thunderbird-91.5.0.source.tar.xz
167 [FILE:699:manifests/plist.single]
187 lib/thunderbird/chrome/icons/default/
196 lib/thunderbird/defaults/messenger/mailViews.dat
197 lib/thunderbird/defaults/pref/channel-prefs.js
204 share/applications/thunderbird.desktop
205 share/pixmaps/thunderbird.png
208 [FILE:5247:patches/patch-addon-search]
209 https://github.com/mozilla/addons/issues/708
210 https://github.com/mozilla/addons-frontend/issues/4610
212 --- comm/mail/app/profile/all-thunderbird.js.orig 2021-08-11 18:47:33.538900000 +0200
213 +++ comm/mail/app/profile/all-thunderbird.js 2021-08-11 18:51:30.055570000 +0200
214 @@ -159,10 +159,10 @@
215 pref("extensions.getAddons.get.url", "https://services.addons.thunderbird.net/api/v3/addons/search/?guid=%IDS%&lang=%LOCALE%");
216 pref("extensions.getAddons.compatOverides.url", "https://services.addons.thunderbird.net/api/v3/addons/compat-override/?guid=%IDS%&lang=%LOCALE%");
217 pref("extensions.getAddons.link.url", "https://addons.thunderbird.net/%LOCALE%/%APP%/");
218 -pref("extensions.getAddons.recommended.url", "https://services.addons.thunderbird.net/%LOCALE%/%APP%/api/%API_VERSION%/list/recommended/all/%MAX_RESULTS%/%OS%/%VERSION%?src=thunderbird");
219 +pref("extensions.getAddons.recommended.url", "https://services.addons.thunderbird.net/%LOCALE%/%APP%/api/%API_VERSION%/list/recommended/all/%MAX_RESULTS%/Linux/%VERSION%?src=thunderbird");
220 pref("extensions.getAddons.search.browseURL", "https://addons.thunderbird.net/%LOCALE%/%APP%/search/?q=%TERMS%");
221 -pref("extensions.getAddons.search.url", "https://services.addons.thunderbird.net/%LOCALE%/%APP%/api/%API_VERSION%/search/%TERMS%/all/%MAX_RESULTS%/%OS%/%VERSION%/%COMPATIBILITY_MODE%?src=thunderbird");
222 -pref("extensions.webservice.discoverURL", "https://services.addons.thunderbird.net/%LOCALE%/%APP%/discovery/pane/%VERSION%/%OS%");
223 +pref("extensions.getAddons.search.url", "https://services.addons.thunderbird.net/%LOCALE%/%APP%/api/%API_VERSION%/search/%TERMS%/all/%MAX_RESULTS%/Linux/%VERSION%/%COMPATIBILITY_MODE%?src=thunderbird");
224 +pref("extensions.webservice.discoverURL", "https://services.addons.thunderbird.net/%LOCALE%/%APP%/discovery/pane/%VERSION%/Linux");
225 pref("extensions.getAddons.langpacks.url", "https://services.addons.thunderbird.net/api/v3/addons/language-tools/?app=thunderbird&type=language&appversion=%VERSION%");
226 pref("extensions.getAddons.discovery.api_url", "https://services.addons.thunderbird.net/api/v4/discovery/?lang=%LOCALE%&edition=%DISTRIBUTION%");
231 pref("extensions.update.enabled", true);
232 -pref("extensions.update.url", "https://versioncheck.addons.thunderbird.net/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%");
233 +pref("extensions.update.url", "https://versioncheck.addons.thunderbird.net/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%");
235 -pref("extensions.update.background.url", "https://versioncheck-bg.addons.thunderbird.net/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%");
236 +pref("extensions.update.background.url", "https://versioncheck-bg.addons.thunderbird.net/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%");
238 pref("extensions.update.interval", 86400); // Check for updates to Extensions and
240 --- toolkit/mozapps/extensions/internal/AddonRepository.jsm.orig 2021-08-11 18:52:27.424729000 +0200
241 +++ toolkit/mozapps/extensions/internal/AddonRepository.jsm 2021-08-11 18:54:16.222790000 +0200
243 addon.version = String(aEntry.current_version.version);
244 if (Array.isArray(aEntry.current_version.files)) {
245 for (let file of aEntry.current_version.files) {
246 - if (file.platform == "all" || file.platform == PLATFORM) {
247 + if (file.platform == "all" || file.platform == "linux" || file.platform == PLATFORM) {
249 addon.sourceURI = NetUtil.newURI(file.url);
251 --- toolkit/mozapps/extensions/internal/XPIDatabase.jsm.orig 2021-08-11 18:55:01.952372000 +0200
252 +++ toolkit/mozapps/extensions/internal/XPIDatabase.jsm 2021-08-11 18:55:57.455245000 +0200
254 // Something is causing errors in here
256 for (let platform of this.targetPlatforms) {
257 - if (platform.os == Services.appinfo.OS) {
258 + if (platform.os == "Linux" || platform.os == Services.appinfo.OS) {
261 if (platform.abi === abi) {
264 [FILE:445:patches/patch-browser-app-nsBrowserApp.cpp]
265 --- browser/app/nsBrowserApp.cpp.orig 2016-09-19 16:19:28 UTC
266 +++ browser/app/nsBrowserApp.cpp
267 @@ -324,6 +324,9 @@ int main(int argc, char* argv[], char* e
269 mozilla::TimeStamp start = mozilla::TimeStamp::Now();
271 + setenv("MOZ_GMP_PATH", "%%LOCALBASE%%/lib/browser_plugins/symlinks/gecko", 0);
272 + setenv("MOZ_PLUGIN_PATH", "%%LOCALBASE%%/lib/browser_plugins/symlinks/gecko", 0);
274 #ifdef HAS_DLL_BLOCKLIST
275 DllBlocklist_Initialize();
279 [FILE:1672:patches/patch-bug1288587]
280 diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
281 index 855214a..1e91d51 100644
282 --- build/moz.configure/init.configure
283 +++ build/moz.configure/init.configure
284 @@ -238,6 +238,7 @@ option(
285 @imports(_from="mozbuild.pythonutil", _import="find_python3_executable")
286 @imports(_from="mozbuild.pythonutil", _import="python_executable_version")
287 @imports(_from="six", _import="ensure_text")
288 +@imports(_from="__builtin__", _import="KeyError")
289 def virtualenv_python3(env_python, build_env, mozconfig, help):
290 # Avoid re-executing python when running configure --help.
292 @@ -271,6 +272,12 @@ def virtualenv_python3(env_python, virtualenv_name, bu
293 python = mozconfig["vars"]["added"]["PYTHON3"]
294 elif "PYTHON3" in mozconfig["vars"]["modified"]:
295 python = mozconfig["vars"]["modified"]["PYTHON3"][1]
296 + for i in ("env", "vars"):
297 + for j in ("added", "modified"):
299 + del mozconfig[i][j]["PYTHON3"]
303 log.debug("python3: executable from configuration: %r" % python)
305 @@ -364,7 +371,10 @@ def virtualenv_python3(env_python, virtualenv_name, bu
307 log.info("Re-executing in the virtualenv")
309 - del os.environ["PYTHON3"]
311 + del os.environ["PYTHON3"]
314 # Another quirk on macOS, with the system python, the virtualenv is
315 # not fully operational (missing entries in sys.path) if
316 # __PYVENV_LAUNCHER__ is set.
319 [FILE:3539:patches/patch-bug1559213]
321 Author: Jory A. Pratt <anarchy@gentoo.org>
322 Date: Thu Jun 13 11:53:00 2019 -0700
324 Bug 1559213 - Allow to use system av1 libs instead of bundled.
326 config/external/moz.build | 5 +++--
327 config/system-headers.mozbuild | 8 ++++++++
328 dom/media/platforms/moz.build | 5 +++++
329 toolkit/moz.configure | 19 ++++++++++++++++++-
330 4 files changed, 34 insertions(+), 3 deletions(-)
332 diff --git config/external/moz.build config/external/moz.build
333 index 03e4fa143bd1..a67d10b11fe6 100644
334 --- config/external/moz.build
335 +++ config/external/moz.build
336 @@ -40,8 +40,9 @@ if not CONFIG["MOZ_SYSTEM_LIBVPX"]:
337 external_dirs += ["media/libvpx"]
339 if CONFIG["MOZ_AV1"]:
340 - external_dirs += ["media/libaom"]
341 - external_dirs += ["media/libdav1d"]
342 + if not CONFIG["MOZ_SYSTEM_AV1"]:
343 + external_dirs += ["media/libaom"]
344 + external_dirs += ["media/libdav1d"]
346 if not CONFIG["MOZ_SYSTEM_PNG"]:
347 external_dirs += ["media/libpng"]
348 diff --git config/system-headers.mozbuild config/system-headers.mozbuild
349 index bcf5c4925564..48964a999a9b 100644
350 --- config/system-headers.mozbuild
351 +++ config/system-headers.mozbuild
352 @@ -1305,6 +1305,14 @@ if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
356 +if CONFIG['MOZ_SYSTEM_AV1']:
357 + system_headers += [
358 + 'aom/aom_decoder.h',
364 if CONFIG['MOZ_SYSTEM_LIBVPX']:
367 diff --git dom/media/platforms/moz.build dom/media/platforms/moz.build
368 index 092cee0c9b66..38e45de5b5f0 100644
369 --- dom/media/platforms/moz.build
370 +++ dom/media/platforms/moz.build
371 @@ -78,6 +78,11 @@ if CONFIG["MOZ_AV1"]:
372 "agnostic/AOMDecoder.cpp",
373 "agnostic/DAV1DDecoder.cpp",
375 + if CONFIG['MOZ_SYSTEM_AV1']:
376 + CXXFLAGS += CONFIG['MOZ_SYSTEM_LIBAOM_CFLAGS']
377 + OS_LIBS += CONFIG['MOZ_SYSTEM_LIBAOM_LIBS']
378 + CXXFLAGS += CONFIG['MOZ_SYSTEM_LIBDAV1D_CFLAGS']
379 + OS_LIBS += CONFIG['MOZ_SYSTEM_LIBDAV1D_LIBS']
381 if CONFIG["MOZ_OMX"]:
383 diff --git toolkit/moz.configure toolkit/moz.configure
384 index 82b5a59acf42..e2329560b42b 100644
385 --- toolkit/moz.configure.orig 2021-04-13 16:12:34.770032000 +0200
386 +++ toolkit/moz.configure 2021-04-18 00:03:41.432698000 +0200
391 -@depends(target, when=av1 & compile_environment)
392 +option("--with-system-av1",
393 + help="Use system av1 (located with pkgconfig)")
395 +system_libaom_info = pkg_check_modules("MOZ_SYSTEM_LIBAOM", "aom >= 1.0.0",
396 + when="--with-system-av1")
398 +system_libdav1d_info = pkg_check_modules("MOZ_SYSTEM_LIBDAV1D", "dav1d >= 0.1.1",
399 + when="--with-system-av1")
401 +@depends(system_libaom_info, system_libdav1d_info)
402 +def system_av1(system_libaom_info, system_libdav1d_info):
403 + has_av1_libs = False
404 + if system_libaom_info and system_libdav1d_info:
405 + has_av1_libs = True
406 + return has_av1_libs
408 +@depends(target, when=av1 & depends(system_av1)(lambda v: not v) & compile_environment)
409 def dav1d_asm(target):
410 if target.cpu in ("aarch64", "x86", "x86_64"):
413 set_define("MOZ_DAV1D_ASM", dav1d_asm)
414 set_config("MOZ_AV1", av1)
415 set_define("MOZ_AV1", av1)
416 +set_config("MOZ_SYSTEM_AV1", depends_if(system_av1)(lambda _: True))
418 # Built-in fragmented MP4 support.
419 # ==============================================================
422 [FILE:11510:patches/patch-bug292127]
423 --- comm/ldap/c-sdk/include/ldap.h~
424 +++ comm/ldap/c-sdk/include/ldap.h
429 +/* rename symbols to not clash with openldap (bug 292127) */
430 +#define ldap_abandon moz_ldap_abandon
431 +#define ldap_abandon_ext moz_ldap_abandon_ext
432 +#define ldap_abandoned moz_ldap_abandoned
433 +#define ldap_add moz_ldap_add
434 +#define ldap_add_ext moz_ldap_add_ext
435 +#define ldap_add_ext_s moz_ldap_add_ext_s
436 +#define ldap_add_result_entry moz_ldap_add_result_entry
437 +#define ldap_add_s moz_ldap_add_s
438 +#define ldap_ber_free moz_ldap_ber_free
439 +#define ldap_bind moz_ldap_bind
440 +#define ldap_bind_s moz_ldap_bind_s
441 +#define ldap_build_filter moz_ldap_build_filter
442 +#define ldap_cache_flush moz_ldap_cache_flush
443 +#define ldap_charray_add moz_ldap_charray_add
444 +#define ldap_charray_dup moz_ldap_charray_dup
445 +#define ldap_charray_free moz_ldap_charray_free
446 +#define ldap_charray_inlist moz_ldap_charray_inlist
447 +#define ldap_charray_merge moz_ldap_charray_merge
448 +#define ldap_charray_position moz_ldap_charray_position
449 +#define ldap_compare moz_ldap_compare
450 +#define ldap_compare_ext moz_ldap_compare_ext
451 +#define ldap_compare_ext_s moz_ldap_compare_ext_s
452 +#define ldap_compare_s moz_ldap_compare_s
453 +#define ldap_control_free moz_ldap_control_free
454 +#define ldap_controls_free moz_ldap_controls_free
455 +#define ldap_count_entries moz_ldap_count_entries
456 +#define ldap_count_messages moz_ldap_count_messages
457 +#define ldap_count_references moz_ldap_count_references
458 +#define ldap_count_values moz_ldap_count_values
459 +#define ldap_count_values_len moz_ldap_count_values_len
460 +#define ldap_create_authzid_control moz_ldap_create_authzid_control
461 +#define ldap_create_filter moz_ldap_create_filter
462 +#define ldap_create_geteffectiveRights_control moz_ldap_create_geteffectiveRights_control
463 +#define ldap_create_passwordpolicy_control moz_ldap_create_passwordpolicy_control
464 +#define ldap_create_passwordpolicy_control_ext moz_ldap_create_passwordpolicy_control_ext
465 +#define ldap_create_persistentsearch_control moz_ldap_create_persistentsearch_control
466 +#define ldap_create_proxiedauth_control moz_ldap_create_proxiedauth_control
467 +#define ldap_create_proxyauth_control moz_ldap_create_proxyauth_control
468 +#define ldap_create_sort_control moz_ldap_create_sort_control
469 +#define ldap_create_sort_keylist moz_ldap_create_sort_keylist
470 +#define ldap_create_userstatus_control moz_ldap_create_userstatus_control
471 +#define ldap_create_virtuallist_control moz_ldap_create_virtuallist_control
472 +#define ldap_delete moz_ldap_delete
473 +#define ldap_delete_ext moz_ldap_delete_ext
474 +#define ldap_delete_ext_s moz_ldap_delete_ext_s
475 +#define ldap_delete_result_entry moz_ldap_delete_result_entry
476 +#define ldap_delete_s moz_ldap_delete_s
477 +#define ldap_dn2ufn moz_ldap_dn2ufn
478 +#define ldap_entry2html moz_ldap_entry2html
479 +#define ldap_entry2html_search moz_ldap_entry2html_search
480 +#define ldap_entry2text moz_ldap_entry2text
481 +#define ldap_entry2text_search moz_ldap_entry2text_search
482 +#define ldap_err2string moz_ldap_err2string
483 +#define ldap_errlist moz_ldap_errlist
484 +#define ldap_explode moz_ldap_explode
485 +#define ldap_explode_dn moz_ldap_explode_dn
486 +#define ldap_explode_dns moz_ldap_explode_dns
487 +#define ldap_explode_rdn moz_ldap_explode_rdn
488 +#define ldap_extended_operation moz_ldap_extended_operation
489 +#define ldap_extended_operation_s moz_ldap_extended_operation_s
490 +#define ldap_find_control moz_ldap_find_control
491 +#define ldap_first_attribute moz_ldap_first_attribute
492 +#define ldap_first_disptmpl moz_ldap_first_disptmpl
493 +#define ldap_first_entry moz_ldap_first_entry
494 +#define ldap_first_message moz_ldap_first_message
495 +#define ldap_first_reference moz_ldap_first_reference
496 +#define ldap_first_searchobj moz_ldap_first_searchobj
497 +#define ldap_first_tmplcol moz_ldap_first_tmplcol
498 +#define ldap_first_tmplrow moz_ldap_first_tmplrow
499 +#define ldap_free_friendlymap moz_ldap_free_friendlymap
500 +#define ldap_free_searchprefs moz_ldap_free_searchprefs
501 +#define ldap_free_sort_keylist moz_ldap_free_sort_keylist
502 +#define ldap_free_templates moz_ldap_free_templates
503 +#define ldap_free_urldesc moz_ldap_free_urldesc
504 +#define ldap_friendly_name moz_ldap_friendly_name
505 +#define ldap_get_dn moz_ldap_get_dn
506 +#define ldap_get_entry_controls moz_ldap_get_entry_controls
507 +#define ldap_get_lang_values moz_ldap_get_lang_values
508 +#define ldap_get_lang_values_len moz_ldap_get_lang_values_len
509 +#define ldap_get_lderrno moz_ldap_get_lderrno
510 +#define ldap_get_option moz_ldap_get_option
511 +#define ldap_get_values moz_ldap_get_values
512 +#define ldap_get_values_len moz_ldap_get_values_len
513 +#define ldap_getfilter_free moz_ldap_getfilter_free
514 +#define ldap_getfirstfilter moz_ldap_getfirstfilter
515 +#define ldap_getnextfilter moz_ldap_getnextfilter
516 +#define ldap_init moz_ldap_init
517 +#define ldap_init_getfilter moz_ldap_init_getfilter
518 +#define ldap_init_getfilter_buf moz_ldap_init_getfilter_buf
519 +#define ldap_init_searchprefs moz_ldap_init_searchprefs
520 +#define ldap_init_searchprefs_buf moz_ldap_init_searchprefs_buf
521 +#define ldap_init_templates moz_ldap_init_templates
522 +#define ldap_init_templates_buf moz_ldap_init_templates_buf
523 +#define ldap_is_dns_dn moz_ldap_is_dns_dn
524 +#define ldap_is_ldap_url moz_ldap_is_ldap_url
525 +#define ldap_keysort_entries moz_ldap_keysort_entries
526 +#define ldap_ld_free moz_ldap_ld_free
527 +#define ldap_memcache_abandon moz_ldap_memcache_abandon
528 +#define ldap_memcache_append moz_ldap_memcache_append
529 +#define ldap_memcache_createkey moz_ldap_memcache_createkey
530 +#define ldap_memcache_destroy moz_ldap_memcache_destroy
531 +#define ldap_memcache_flush moz_ldap_memcache_flush
532 +#define ldap_memcache_flush_results moz_ldap_memcache_flush_results
533 +#define ldap_memcache_get moz_ldap_memcache_get
534 +#define ldap_memcache_init moz_ldap_memcache_init
535 +#define ldap_memcache_new moz_ldap_memcache_new
536 +#define ldap_memcache_result moz_ldap_memcache_result
537 +#define ldap_memcache_set moz_ldap_memcache_set
538 +#define ldap_memcache_update moz_ldap_memcache_update
539 +#define ldap_memfree moz_ldap_memfree
540 +#define ldap_modify moz_ldap_modify
541 +#define ldap_modify_ext moz_ldap_modify_ext
542 +#define ldap_modify_ext_s moz_ldap_modify_ext_s
543 +#define ldap_modify_s moz_ldap_modify_s
544 +#define ldap_modrdn moz_ldap_modrdn
545 +#define ldap_modrdn2 moz_ldap_modrdn2
546 +#define ldap_modrdn2_s moz_ldap_modrdn2_s
547 +#define ldap_modrdn_s moz_ldap_modrdn_s
548 +#define ldap_mods_free moz_ldap_mods_free
549 +#define ldap_msgdelete moz_ldap_msgdelete
550 +#define ldap_msgfree moz_ldap_msgfree
551 +#define ldap_msgid moz_ldap_msgid
552 +#define ldap_msgtype moz_ldap_msgtype
553 +#define ldap_multisort_entries moz_ldap_multisort_entries
554 +#define ldap_name2template moz_ldap_name2template
555 +#define ldap_next_attribute moz_ldap_next_attribute
556 +#define ldap_next_disptmpl moz_ldap_next_disptmpl
557 +#define ldap_next_entry moz_ldap_next_entry
558 +#define ldap_next_message moz_ldap_next_message
559 +#define ldap_next_reference moz_ldap_next_reference
560 +#define ldap_next_searchobj moz_ldap_next_searchobj
561 +#define ldap_next_tmplcol moz_ldap_next_tmplcol
562 +#define ldap_next_tmplrow moz_ldap_next_tmplrow
563 +#define ldap_oc2template moz_ldap_oc2template
564 +#define ldap_open moz_ldap_open
565 +#define ldap_parse_authzid_control moz_ldap_parse_authzid_control
566 +#define ldap_parse_entrychange_control moz_ldap_parse_entrychange_control
567 +#define ldap_parse_extended_result moz_ldap_parse_extended_result
568 +#define ldap_parse_passwd moz_ldap_parse_passwd
569 +#define ldap_parse_passwordpolicy_control moz_ldap_parse_passwordpolicy_control
570 +#define ldap_parse_passwordpolicy_control_ext moz_ldap_parse_passwordpolicy_control_ext
571 +#define ldap_parse_reference moz_ldap_parse_reference
572 +#define ldap_parse_result moz_ldap_parse_result
573 +#define ldap_parse_sasl_bind_result moz_ldap_parse_sasl_bind_result
574 +#define ldap_parse_sort_control moz_ldap_parse_sort_control
575 +#define ldap_parse_userstatus_control moz_ldap_parse_userstatus_control
576 +#define ldap_parse_virtuallist_control moz_ldap_parse_virtuallist_control
577 +#define ldap_parse_whoami moz_ldap_parse_whoami
578 +#define ldap_passwd moz_ldap_passwd
579 +#define ldap_passwd_s moz_ldap_passwd_s
580 +#define ldap_passwordpolicy_err2txt moz_ldap_passwordpolicy_err2txt
581 +#define ldap_perror moz_ldap_perror
582 +#define ldap_rename moz_ldap_rename
583 +#define ldap_rename_s moz_ldap_rename_s
584 +#define ldap_result moz_ldap_result
585 +#define ldap_result2error moz_ldap_result2error
586 +#define ldap_sasl_bind moz_ldap_sasl_bind
587 +#define ldap_sasl_bind_s moz_ldap_sasl_bind_s
588 +#define ldap_sasl_interactive_bind_ext_s moz_ldap_sasl_interactive_bind_ext_s
589 +#define ldap_sasl_interactive_bind_s moz_ldap_sasl_interactive_bind_s
590 +#define ldap_search moz_ldap_search
591 +#define ldap_search_ext moz_ldap_search_ext
592 +#define ldap_search_ext_s moz_ldap_search_ext_s
593 +#define ldap_search_s moz_ldap_search_s
594 +#define ldap_search_st moz_ldap_search_st
595 +#define ldap_set_filter_additions moz_ldap_set_filter_additions
596 +#define ldap_set_lderrno moz_ldap_set_lderrno
597 +#define ldap_set_option moz_ldap_set_option
598 +#define ldap_set_rebind_proc moz_ldap_set_rebind_proc
599 +#define ldap_setfilteraffixes moz_ldap_setfilteraffixes
600 +#define ldap_simple_bind moz_ldap_simple_bind
601 +#define ldap_simple_bind_s moz_ldap_simple_bind_s
602 +#define ldap_sort_entries moz_ldap_sort_entries
603 +#define ldap_sort_strcasecmp moz_ldap_sort_strcasecmp
604 +#define ldap_sort_values moz_ldap_sort_values
605 +#define ldap_start_tls_s moz_ldap_start_tls_s
606 +#define ldap_str2charray moz_ldap_str2charray
607 +#define ldap_tmplattrs moz_ldap_tmplattrs
608 +#define ldap_tmplerr2string moz_ldap_tmplerr2string
609 +#define ldap_tmplerrlist moz_ldap_tmplerrlist
610 +#define ldap_ufn_search_c moz_ldap_ufn_search_c
611 +#define ldap_ufn_search_ct moz_ldap_ufn_search_ct
612 +#define ldap_ufn_search_ctx moz_ldap_ufn_search_ctx
613 +#define ldap_ufn_search_s moz_ldap_ufn_search_s
614 +#define ldap_ufn_setfilter moz_ldap_ufn_setfilter
615 +#define ldap_ufn_setprefix moz_ldap_ufn_setprefix
616 +#define ldap_ufn_timeout moz_ldap_ufn_timeout
617 +#define ldap_unbind moz_ldap_unbind
618 +#define ldap_unbind_ext moz_ldap_unbind_ext
619 +#define ldap_unbind_s moz_ldap_unbind_s
620 +#define ldap_url_parse moz_ldap_url_parse
621 +#define ldap_url_parse_no_defaults moz_ldap_url_parse_no_defaults
622 +#define ldap_url_search moz_ldap_url_search
623 +#define ldap_url_search_s moz_ldap_url_search_s
624 +#define ldap_url_search_st moz_ldap_url_search_st
625 +#define ldap_utf8characters moz_ldap_utf8characters
626 +#define ldap_utf8copy moz_ldap_utf8copy
627 +#define ldap_utf8getcc moz_ldap_utf8getcc
628 +#define ldap_utf8isalnum moz_ldap_utf8isalnum
629 +#define ldap_utf8isalpha moz_ldap_utf8isalpha
630 +#define ldap_utf8isdigit moz_ldap_utf8isdigit
631 +#define ldap_utf8isspace moz_ldap_utf8isspace
632 +#define ldap_utf8isxdigit moz_ldap_utf8isxdigit
633 +#define ldap_utf8len moz_ldap_utf8len
634 +#define ldap_utf8next moz_ldap_utf8next
635 +#define ldap_utf8prev moz_ldap_utf8prev
636 +#define ldap_utf8strtok_r moz_ldap_utf8strtok_r
637 +#define ldap_vals2html moz_ldap_vals2html
638 +#define ldap_vals2text moz_ldap_vals2text
639 +#define ldap_value_free moz_ldap_value_free
640 +#define ldap_value_free_len moz_ldap_value_free_len
641 +#define ldap_version moz_ldap_version
642 +#define ldap_whoami moz_ldap_whoami
643 +#define ldap_whoami_s moz_ldap_whoami_s
644 +#define ldap_x_calloc moz_ldap_x_calloc
645 +#define ldap_x_free moz_ldap_x_free
646 +#define ldap_x_hostlist_first moz_ldap_x_hostlist_first
647 +#define ldap_x_hostlist_next moz_ldap_x_hostlist_next
648 +#define ldap_x_hostlist_statusfree moz_ldap_x_hostlist_statusfree
649 +#define ldap_x_malloc moz_ldap_x_malloc
650 +#define ldap_x_realloc moz_ldap_x_realloc
652 /* Standard LDAP API functions and declarations */
653 #include "ldap-standard.h"
657 [FILE:9827:patches/patch-bug847568]
658 # Allow building against system-wide graphite2/harfbuzz.
660 diff --git config/system-headers.mozbuild config/system-headers.mozbuild
661 index 7620b4d00623..09d3db5ca8c0 100644
662 --- config/system-headers.mozbuild
663 +++ config/system-headers.mozbuild
664 @@ -1292,6 +1292,19 @@ if CONFIG['MOZ_ENABLE_LIBPROXY']:
668 +if CONFIG['MOZ_SYSTEM_GRAPHITE2']:
669 + system_headers += [
670 + 'graphite2/Font.h',
671 + 'graphite2/Segment.h',
674 +if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
675 + system_headers += [
676 + 'harfbuzz/hb-glib.h',
677 + 'harfbuzz/hb-ot.h',
681 if CONFIG['MOZ_SYSTEM_LIBVPX']:
684 diff --git dom/base/moz.build dom/base/moz.build
685 index 8e19020315ae..2fcdbb6f7b42 100644
686 --- dom/base/moz.build
687 +++ dom/base/moz.build
688 @@ -546,6 +546,9 @@ if CONFIG["MOZ_BUILD_APP"] in ["browser", "mobile/android", "xulrunner"]:
689 if CONFIG["MOZ_X11"]:
690 CXXFLAGS += CONFIG["TK_CFLAGS"]
692 +if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
693 + CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
697 script="gen-usecounters.py",
698 diff --git gfx/graphite2/geckoextra/moz.build gfx/graphite2/geckoextra/moz.build
700 index 0000000000000..24e8d7a03274a
702 +++ gfx/graphite2/geckoextra/moz.build
704 +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
705 +# vim: set filetype=python:
706 +# This Source Code Form is subject to the terms of the Mozilla Public
707 +# License, v. 2.0. If a copy of the MPL was not distributed with this
708 +# file, You can obtain one at http://mozilla.org/MPL/2.0/.
710 +EXPORTS.graphite2 += [
711 + 'include/GraphiteExtra.h',
712 + 'include/GraphiteStructsForRLBox.h',
715 +UNIFIED_SOURCES += [
716 + '../geckoextra/src/GraphiteExtra.cpp',
719 +CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS']
721 +# Match bundled graphite2 configuration
722 +AllowCompilerWarnings()
724 +FINAL_LIBRARY = 'gkmedias'
725 diff --git gfx/graphite2/moz-gr-update.sh gfx/graphite2/moz-gr-update.sh
726 index faaab1b17971..04eff5f09882 100644
727 --- gfx/graphite2/moz-gr-update.sh
728 +++ gfx/graphite2/moz-gr-update.sh
732 # Script used to update the Graphite2 library in the mozilla source tree
733 +# and bump version for --with-system-graphite2
735 # This script lives in gfx/graphite2, along with the library source,
736 # but must be run from the top level of the mozilla-central tree.
737 @@ -37,12 +38,16 @@ echo "See" $0 "for update procedure." >> gfx/graphite2/README.mozilla
738 #find gfx/graphite2/ -name "*.cpp" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \;
739 #find gfx/graphite2/ -name "*.h" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \;
741 +# chase version for --with-system-graphite2
742 +perl -p -i -e "s/[0-9]+\,[0-9]+\,[0-9]+/$RELEASE/ and tr/./,/ \
743 + if /GR2_VERSION_REQUIRE/" old-configure.in
745 # summarize what's been touched
746 echo Updated to $RELEASE.
747 echo Here is what changed in the gfx/graphite2 directory:
750 -hg stat gfx/graphite2
751 +hg stat old-configure.in gfx/graphite2
754 echo If gfx/graphite2/src/files.mk has changed, please make corresponding
755 diff --git gfx/harfbuzz/README-mozilla gfx/harfbuzz/README-mozilla
756 index 22c76a7df020..a01490bd49ee 100644
757 --- gfx/harfbuzz/README-mozilla
758 +++ gfx/harfbuzz/README-mozilla
759 @@ -15,3 +15,8 @@ from within the gfx/harfbuzz directory.
761 If the collection of source files changes, manual updates to moz.build may be
762 needed as we don't use the upstream makefiles.
764 +The in-tree copy may be omitted during build by --with-system-harfbuzz.
765 +Make sure to keep pkg-config version check within toolkit/moz.configure in sync
766 +with checkout version or increment latest tag by one if it's not based
767 +on upstream release.
768 diff --git gfx/moz.build gfx/moz.build
769 index 771f652e837a..3b358d84e384 100644
772 @@ -13,6 +13,14 @@ with Files("wr/**"):
773 if CONFIG["MOZ_TREE_CAIRO"]:
776 +if CONFIG["MOZ_SYSTEM_GRAPHITE2"]:
777 + DIRS += ["graphite2/geckoextra"]
779 + DIRS += ["graphite2/src" ]
781 +if not CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
782 + DIRS += ["harfbuzz/src"]
787 @@ -21,8 +29,6 @@ DIRS += [
796 diff --git gfx/skia/generate_mozbuild.py gfx/skia/generate_mozbuild.py
797 index e06ae3457a47..93faa61594a3 100755
798 --- gfx/skia/generate_mozbuild.py
799 +++ gfx/skia/generate_mozbuild.py
800 @@ -98,6 +98,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'):
801 '-Wno-unused-private-field',
804 +if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
805 + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
807 if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk', 'android'):
808 CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
809 CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
810 diff --git gfx/skia/moz.build gfx/skia/moz.build
811 index 2118677ca3a8..e4978b413784 100644
812 --- gfx/skia/moz.build
813 +++ gfx/skia/moz.build
814 @@ -490,6 +490,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'):
815 '-Wno-unused-private-field',
818 +if CONFIG['MOZ_SYSTEM_HARFBUZZ']:
819 + CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
821 if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk', 'android'):
822 CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
823 CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
824 diff --git gfx/thebes/moz.build gfx/thebes/moz.build
825 index 56f1b9fe3f4b..0ac1100b0df3 100644
826 --- gfx/thebes/moz.build
827 +++ gfx/thebes/moz.build
828 @@ -287,7 +287,13 @@ if CONFIG["MOZ_WAYLAND"]:
830 LOCAL_INCLUDES += CONFIG["SKIA_INCLUDES"]
832 -DEFINES["GRAPHITE2_STATIC"] = True
833 +if CONFIG["MOZ_SYSTEM_GRAPHITE2"]:
834 + CXXFLAGS += CONFIG["MOZ_GRAPHITE2_CFLAGS"]
836 + DEFINES["GRAPHITE2_STATIC"] = True
838 +if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
839 + CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
841 if CONFIG["CC_TYPE"] == "clang":
842 # Suppress warnings from Skia header files.
843 diff --git intl/unicharutil/util/moz.build intl/unicharutil/util/moz.build
844 index cb1233c56d7e..06fb1f9f174b 100644
845 --- intl/unicharutil/util/moz.build
846 +++ intl/unicharutil/util/moz.build
847 @@ -25,4 +25,7 @@ UNIFIED_SOURCES += [
848 "nsUnicodeProperties.cpp",
851 +if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
852 + CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
854 FINAL_LIBRARY = "xul"
855 diff --git netwerk/dns/moz.build netwerk/dns/moz.build
856 index 79c26e3e7001..c4d93bc5f7dc 100644
857 --- netwerk/dns/moz.build
858 +++ netwerk/dns/moz.build
859 @@ -105,3 +105,6 @@ USE_LIBS += ["icu"]
861 if CONFIG["CC_TYPE"] in ("clang", "gcc"):
862 CXXFLAGS += ["-Wno-error=shadow"]
864 +if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
865 + CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"]
866 diff --git old-configure.in old-configure.in
867 index 95a58b634593..b614eef85c89 100644
870 @@ -2303,6 +2303,27 @@ dnl ========================================================
872 AC_SUBST(MOZ_LINUX_32_SSE2_STARTUP_ERROR)
874 +dnl ========================================================
875 +dnl Check for graphite2
876 +dnl ========================================================
877 +if test -n "$MOZ_SYSTEM_GRAPHITE2"; then
878 + dnl graphite2.pc has bogus version, check manually
879 + _SAVE_CFLAGS=$CFLAGS
880 + CFLAGS="$CFLAGS $MOZ_GRAPHITE2_CFLAGS"
881 + AC_TRY_COMPILE([ #include <graphite2/Font.h>
882 + #define GR2_VERSION_REQUIRE(major,minor,bugfix) \
883 + ( GR2_VERSION_MAJOR * 10000 + GR2_VERSION_MINOR \
884 + * 100 + GR2_VERSION_BUGFIX >= \
885 + (major) * 10000 + (minor) * 100 + (bugfix) )
887 + #if !GR2_VERSION_REQUIRE(1,3,14)
888 + #error "Insufficient graphite2 version."
891 + [AC_MSG_ERROR([--with-system-graphite2 requested but no working libgraphite2 found])])
892 + CFLAGS=$_SAVE_CFLAGS
895 dnl ========================================================
896 dnl Check for pixman and cairo
897 dnl ========================================================
898 diff --git toolkit/library/moz.build toolkit/library/moz.build
899 index 24f940e1ed7e..079a575adec3 100644
900 --- toolkit/library/moz.build
901 +++ toolkit/library/moz.build
902 @@ -247,6 +247,12 @@ if CONFIG["MOZ_SYSTEM_PNG"]:
903 if CONFIG["MOZ_SYSTEM_WEBP"]:
904 OS_LIBS += CONFIG["MOZ_WEBP_LIBS"]
906 +if CONFIG["MOZ_SYSTEM_GRAPHITE2"]:
907 + OS_LIBS += CONFIG["MOZ_GRAPHITE2_LIBS"]
909 +if CONFIG["MOZ_SYSTEM_HARFBUZZ"]:
910 + OS_LIBS += CONFIG["MOZ_HARFBUZZ_LIBS"]
912 if CONFIG["MOZ_SYSTEM_LIBEVENT"]:
913 OS_LIBS += CONFIG["MOZ_LIBEVENT_LIBS"]
915 diff --git toolkit/moz.configure toolkit/moz.configure
916 index 9297e4d6f501..d8e273887e4b 100644
917 --- toolkit/moz.configure
918 +++ toolkit/moz.configure
919 @@ -1055,6 +1055,25 @@ set_config("FT2_LIBS", ft2_info.libs)
920 add_old_configure_assignment("FT2_LIBS", ft2_info.libs)
921 add_old_configure_assignment("FT2_CFLAGS", ft2_info.cflags)
924 +# ==============================================================
925 +option("--with-system-graphite2",
926 + help="Use system graphite2 (located with pkgconfig)")
928 +system_graphite2 = pkg_check_modules("MOZ_GRAPHITE2", "graphite2",
929 + when="--with-system-graphite2")
931 +set_config("MOZ_SYSTEM_GRAPHITE2", depends_if(system_graphite2)(lambda _: True))
934 +# ==============================================================
935 +option("--with-system-harfbuzz",
936 + help="Use system harfbuzz (located with pkgconfig)")
938 +system_harfbuzz = pkg_check_modules("MOZ_HARFBUZZ", "harfbuzz >= 2.7.4",
939 + when="--with-system-harfbuzz")
941 +set_config("MOZ_SYSTEM_HARFBUZZ", depends_if(system_harfbuzz)(lambda _: True))
944 # (partial implementation of Chromium Remote Debugging Protocol)
947 [FILE:406:patches/patch-comm__third_party__rnpdefs.mozbuild]
948 --- comm/third_party/rnpdefs.mozbuild.orig 2021-08-11 20:13:25.176921000 +0200
949 +++ comm/third_party/rnpdefs.mozbuild 2021-08-11 20:14:08.855374000 +0200
951 OS_LIBS += [static_libdir, "-l:libc++.a", "-l:libc++abi.a"]
954 -if CONFIG["OS_ARCH"] in ("Linux", "SunOS"):
955 +if CONFIG["OS_ARCH"] in ("Linux", "FreeBSD", "DragonFly", "SunOS"):
957 CXXFLAGS += ["-fPIC"]
960 [FILE:1292:patches/patch-comm_ldap_c-sdk_include_portable.h]
961 --- comm/ldap/c-sdk/include/portable.h.orig 2020-05-21 20:31:05 UTC
962 +++ comm/ldap/c-sdk/include/portable.h
963 @@ -119,11 +119,15 @@
964 # define OPENLOG_OPTIONS (LOG_PID | LOG_NOWAIT)
967 +#ifdef __DragonFly__
972 * some systems don't have the BSD re_comp and re_exec routines
974 #ifndef NEED_BSDREGEX
975 -# if (defined(SYSV) || defined(NETBSD) || defined(FREEBSD) || \
976 +# if (defined(SYSV) || defined(NETBSD) || defined(FREEBSD) || defined(DRAGONFLY) || \
977 defined(__OpenBSD__) || defined(linux) || defined(DARWIN)) && \
979 # define NEED_BSDREGEX
980 @@ -274,7 +278,7 @@ int strncasecmp(const char *, const char
981 defined(SUNOS4) || defined(SNI) || defined(BSDI) || defined(NCR) || \
982 defined(OSF1) || defined(NEC) || defined(VMS) || \
983 (defined(HPUX10) && !defined(_REENTRANT)) || defined(HPUX11) || \
984 - defined(UnixWare) || defined(NETBSD) || defined(FREEBSD) || \
985 + defined(UnixWare) || defined(NETBSD) || defined(FREEBSD) || defined(DRAGONFLY) || \
986 defined(OPENBSD) || (defined(LINUX) && __GLIBC__ < 2) || \
987 (defined(AIX) && !defined(USE_REENTRANT_LIBC))
988 # define GETHOSTBYNAME(n, r, b, l, e) gethostbyname(n)
991 [FILE:421:patches/patch-comm_mail_app_nsMailApp.cpp]
992 --- comm/mail/app/nsMailApp.cpp.orig 2020-07-13 18:10:03 UTC
993 +++ comm/mail/app/nsMailApp.cpp
994 @@ -306,6 +306,9 @@ int main(int argc, char* argv[], char* e
998 + setenv("MOZ_GMP_PATH", "%%LOCALBASE%%/lib/browser_plugins/symlinks/gecko", 0);
999 + setenv("MOZ_PLUGIN_PATH", "%%LOCALBASE%%/lib/browser_plugins/symlinks/gecko", 0);
1001 #ifdef HAS_DLL_BLOCKLIST
1002 DllBlocklist_Initialize(gBlocklistInitFlags);
1006 [FILE:679:patches/patch-comm_third__party_botan_configure.py]
1007 --- comm/third_party/botan/configure.py.orig 2020-07-13 18:10:04 UTC
1008 +++ comm/third_party/botan/configure.py
1009 @@ -2936,11 +2936,7 @@ def set_defaults_for_unset_options(optio
1010 options.os = find_canonical_os_name(options.os)
1012 def deduce_compiler_type_from_cc_bin(cc_bin):
1013 - if cc_bin.find('clang') != -1 or cc_bin in ['emcc', 'em++']:
1015 - if cc_bin.find('-g++') != -1 or cc_bin.find('g++') != -1:
1020 if options.compiler is None and options.compiler_binary is not None:
1021 options.compiler = deduce_compiler_type_from_cc_bin(options.compiler_binary)
1024 [FILE:286:patches/patch-comm_third__party_botan_src_build-data_os_freebsd.txt]
1025 FreeBSD 11.3 doesn't have sys/auxv.h
1027 --- comm/third_party/botan/src/build-data/os/freebsd.txt.orig 2020-09-08 23:21:51 UTC
1028 +++ comm/third_party/botan/src/build-data/os/freebsd.txt
1029 @@ -11,7 +11,6 @@ dev_random
1039 [FILE:914:patches/patch-env-api-keys]
1040 # Accept API keys from environment like before bug 1294585
1042 --- build/moz.configure/keyfiles.configure
1043 +++ build/moz.configure/keyfiles.configure
1044 @@ -19,6 +19,7 @@ def keyfile(desc, default=None, help=None, callback=lambda x: x):
1045 @checking("for the %s key" % desc, lambda x: x and x is not no_key)
1046 @imports(_from="__builtin__", _import="open")
1047 @imports(_from="__builtin__", _import="IOError")
1048 + @imports(_from="os", _import="environ")
1052 @@ -29,7 +30,7 @@ def keyfile(desc, default=None, help=None, callback=lambda x: x):
1053 raise FatalCheckError("'%s' is empty." % value[0])
1054 except IOError as e:
1055 raise FatalCheckError("'%s': %s." % (value[0], e.strerror))
1057 + return environ.get("MOZ_%s_KEY" % desc.upper().replace(" ", "_")) or no_key
1063 [FILE:2142:patches/patch-freebsd11.3]
1064 Drop after FreeBSD 11.3 EOL around 2020-09-20.
1065 https://svnweb.freebsd.org/changeset/base/351766
1067 mozglue/baseprofiler/core/shared-libraries-linux.cc:374:34: error: use of undeclared
1068 identifier 'NT_GNU_BUILD_ID'
1069 if (note_header->n_type == NT_GNU_BUILD_ID) break;
1071 In file included from Unified_cpp_mozglue_baseprofiler0.cpp:137:
1072 mozglue/baseprofiler/lul/LulElf.cpp:762:32: error: use of undeclared identifier
1074 if (note_header->n_type == NT_GNU_BUILD_ID) break;
1076 In file included from Unified_cpp_tools_profiler1.cpp:38:
1077 tools/profiler/lul/LulElf.cpp:776:32: error: use of undeclared identifier
1079 if (note_header->n_type == NT_GNU_BUILD_ID) break;
1082 --- mozglue/baseprofiler/core/shared-libraries-linux.cc.orig 2020-06-25 17:04:48 UTC
1083 +++ mozglue/baseprofiler/core/shared-libraries-linux.cc
1084 @@ -50,6 +50,11 @@ extern "C" MOZ_EXPORT __attribute__((weak)) int dl_ite
1085 # define ElfW(type) Elf_##type
1088 +#if defined(GP_OS_freebsd) && !defined(NT_GNU_BUILD_ID)
1089 +// FreeBSD < 11.4 doesn't define NT_GNU_BUILD_ID
1090 +# define NT_GNU_BUILD_ID 3
1093 // ----------------------------------------------------------------------------
1094 // Starting imports from toolkit/crashreporter/google-breakpad/, as needed by
1095 // this file when moved to mozglue.
1096 --- mozglue/baseprofiler/lul/LulElf.cpp.orig 2020-06-25 17:04:48 UTC
1097 +++ mozglue/baseprofiler/lul/LulElf.cpp
1099 # define EM_AARCH64 183
1102 +#if defined(GP_OS_freebsd) && !defined(NT_GNU_BUILD_ID)
1103 +// FreeBSD < 11.4 doesn't define NT_GNU_BUILD_ID
1104 +# define NT_GNU_BUILD_ID 3
1107 // This namespace contains helper functions.
1110 --- tools/profiler/lul/LulElf.cpp.orig 2020-06-25 17:05:05 UTC
1111 +++ tools/profiler/lul/LulElf.cpp
1113 # define EM_AARCH64 183
1116 +#if defined(GP_OS_freebsd) && !defined(NT_GNU_BUILD_ID)
1117 +// FreeBSD < 11.4 doesn't define NT_GNU_BUILD_ID
1118 +# define NT_GNU_BUILD_ID 3
1121 // This namespace contains helper functions.
1126 [FILE:890:patches/patch-gfx_skia_skia_src_core_SkCpu.cpp]
1127 Regressed by https://svnweb.freebsd.org/changeset/base/324815
1129 gfx/skia/skia/src/core/SkCpu.cpp:81:27: error: use of undeclared identifier 'getauxval'
1130 uint32_t hwcaps = getauxval(AT_HWCAP);
1133 --- gfx/skia/skia/src/core/SkCpu.cpp.orig 2020-07-13 18:06:57 UTC
1134 +++ gfx/skia/skia/src/core/SkCpu.cpp
1139 +#elif defined(SK_CPU_ARM64) && defined(__FreeBSD__)
1140 + #include <machine/armreg.h>
1142 + static uint32_t read_cpu_features() {
1143 + uint32_t features = 0;
1144 + uint64_t id_aa64isar0;
1146 + id_aa64isar0 = READ_SPECIALREG(ID_AA64ISAR0_EL1);
1147 + if (ID_AA64ISAR0_CRC32(id_aa64isar0) == ID_AA64ISAR0_CRC32_BASE) {
1148 + features |= SkCpu::CRC32;
1153 #elif defined(SK_CPU_ARM64) && __has_include(<sys/auxv.h>)
1154 #include <sys/auxv.h>
1158 [FILE:290:files/thunderbird.desktop]
1162 GenericName=Mail Client
1163 Comment=Mail client and News Reader
1165 Icon=thunderbird.png
1169 Categories=Network;Email;News;InstantMessaging;
1170 MimeType=application/mbox;message/rfc822;