From nobody Tue Nov 02 17:26:37 2021 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 43B64182C1CE; Tue, 2 Nov 2021 17:26:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4HkGzL12SKz4rvM; Tue, 2 Nov 2021 17:26:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 050A31046; Tue, 2 Nov 2021 17:26:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 1A2HQbAU071463; Tue, 2 Nov 2021 17:26:37 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 1A2HQbxh071462; Tue, 2 Nov 2021 17:26:37 GMT (envelope-from git) Date: Tue, 2 Nov 2021 17:26:37 GMT Message-Id: <202111021726.1A2HQbxh071462@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Christoph Moench-Tegeder Subject: git: c58401d4dda5 - main - www/firefox-esr: update to 91.3.0 List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cmt X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: c58401d4dda5bdd2d9bd9b50ee45b3d8db54f3b3 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by cmt: URL: https://cgit.FreeBSD.org/ports/commit/?id=c58401d4dda5bdd2d9bd9b50ee45b3d8db54f3b3 commit c58401d4dda5bdd2d9bd9b50ee45b3d8db54f3b3 Author: Christoph Moench-Tegeder AuthorDate: 2021-11-02 17:26:04 +0000 Commit: Christoph Moench-Tegeder CommitDate: 2021-11-02 17:26:04 +0000 www/firefox-esr: update to 91.3.0 Release Notes: https://www.mozilla.org/en-US/firefox/91.3.0/releasenotes/ --- www/firefox-esr/Makefile | 9 +- www/firefox-esr/distinfo | 6 +- www/firefox-esr/files/patch-addon-search | 22 +- www/firefox-esr/files/patch-bug1288587 | 42 +- www/firefox-esr/files/patch-bug1559213 | 70 +- www/firefox-esr/files/patch-bug1612184 | 16 +- www/firefox-esr/files/patch-bug1618914 | 43 +- www/firefox-esr/files/patch-bug1628567 | 12 +- www/firefox-esr/files/patch-bug1694575 | 33 - www/firefox-esr/files/patch-bug847568 | 140 ++-- www/firefox-esr/files/patch-cubeb-oss | 1324 ------------------------------ www/firefox-esr/files/patch-env-api-keys | 14 +- www/firefox-esr/files/patch-rust-1.56.0 | 21 - 13 files changed, 190 insertions(+), 1562 deletions(-) diff --git a/www/firefox-esr/Makefile b/www/firefox-esr/Makefile index 0590d3e63a99..70132b426528 100644 --- a/www/firefox-esr/Makefile +++ b/www/firefox-esr/Makefile @@ -1,8 +1,7 @@ # Created by: Alan Eldridge PORTNAME= firefox -DISTVERSION= 78.15.0 -PORTREVISION= 4 +DISTVERSION= 91.3.0 PORTEPOCH= 1 CATEGORIES= www MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source \ @@ -13,11 +12,11 @@ DISTFILES= ${DISTNAME}esr.source${EXTRACT_SUFX} MAINTAINER= gecko@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla -BUILD_DEPENDS= nspr>=4.26:devel/nspr \ - nss>=3.56:security/nss \ +BUILD_DEPENDS= nspr>=4.32:devel/nspr \ + nss>=3.68:security/nss \ icu>=67.1,1:devel/icu \ libevent>=2.1.8:devel/libevent \ - harfbuzz>=2.6.6:print/harfbuzz \ + harfbuzz>=2.8.1:print/harfbuzz \ graphite2>=1.3.14:graphics/graphite2 \ png>=1.6.37:graphics/png \ libvpx>=1.8.2:multimedia/libvpx \ diff --git a/www/firefox-esr/distinfo b/www/firefox-esr/distinfo index 0c6d137b2a94..79bd67a2f6ed 100644 --- a/www/firefox-esr/distinfo +++ b/www/firefox-esr/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1632856817 -SHA256 (firefox-78.15.0esr.source.tar.xz) = a4438d84d95171a6d4fea9c9f02c2edbf0475a9c614d968ebe2eedc25a672151 -SIZE (firefox-78.15.0esr.source.tar.xz) = 330819568 +TIMESTAMP = 1635866927 +SHA256 (firefox-91.3.0esr.source.tar.xz) = 128b5349f112d8a0fd8698f3645ed43ea29d4b95047b7c4fd770b95d0661e96c +SIZE (firefox-91.3.0esr.source.tar.xz) = 381117132 diff --git a/www/firefox-esr/files/patch-addon-search b/www/firefox-esr/files/patch-addon-search index b01adb2c434f..f04e5599bbe7 100644 --- a/www/firefox-esr/files/patch-addon-search +++ b/www/firefox-esr/files/patch-addon-search @@ -3,9 +3,9 @@ https://github.com/mozilla/addons-frontend/issues/4610 diff --git browser/app/profile/firefox.js browser/app/profile/firefox.js index 75c2c5e435e35..4d8c09c02759b 100644 ---- browser/app/profile/firefox.js -+++ browser/app/profile/firefox.js -@@ -37,7 +37,7 @@ pref("extensions.webextOptionalPermissionPrompts", true); +--- browser/app/profile/firefox.js.orig 2021-11-02 16:33:38.105280000 +0100 ++++ browser/app/profile/firefox.js 2021-11-02 16:37:53.792644000 +0100 +@@ -39,7 +39,7 @@ // Preferences for AMO integration pref("extensions.getAddons.cache.enabled", true); pref("extensions.getAddons.get.url", "https://services.addons.mozilla.org/api/v4/addons/search/?guid=%IDS%&lang=%LOCALE%"); @@ -14,7 +14,7 @@ index 75c2c5e435e35..4d8c09c02759b 100644 pref("extensions.getAddons.link.url", "https://addons.mozilla.org/%LOCALE%/firefox/"); pref("extensions.getAddons.langpacks.url", "https://services.addons.mozilla.org/api/v4/addons/language-tools/?app=firefox&type=language&appversion=%VERSION%"); pref("extensions.getAddons.discovery.api_url", "https://services.addons.mozilla.org/api/v4/discovery/?lang=%LOCALE%&edition=%DISTRIBUTION%"); -@@ -168,8 +168,8 @@ pref("app.update.staging.enabled", true); +@@ -206,8 +206,8 @@ // .. etc .. // pref("extensions.update.enabled", true); @@ -27,9 +27,9 @@ index 75c2c5e435e35..4d8c09c02759b 100644 diff --git toolkit/mozapps/extensions/internal/AddonRepository.jsm toolkit/mozapps/extensions/internal/AddonRepository.jsm index f70fd8d7e3bd8..81e8cd7764fdf 100644 ---- toolkit/mozapps/extensions/internal/AddonRepository.jsm -+++ toolkit/mozapps/extensions/internal/AddonRepository.jsm -@@ -602,7 +602,7 @@ var AddonRepository = { +--- toolkit/mozapps/extensions/internal/AddonRepository.jsm.orig 2021-11-02 16:38:22.800491000 +0100 ++++ toolkit/mozapps/extensions/internal/AddonRepository.jsm 2021-11-02 16:39:24.255593000 +0100 +@@ -584,7 +584,7 @@ addon.version = String(aEntry.current_version.version); if (Array.isArray(aEntry.current_version.files)) { for (let file of aEntry.current_version.files) { @@ -40,9 +40,9 @@ index f70fd8d7e3bd8..81e8cd7764fdf 100644 } diff --git toolkit/mozapps/extensions/internal/XPIDatabase.jsm toolkit/mozapps/extensions/internal/XPIDatabase.jsm index f70fd8d7e3bd8..81e8cd7764fdf 100644 ---- toolkit/mozapps/extensions/internal/XPIDatabase.jsm -+++ toolkit/mozapps/extensions/internal/XPIDatabase.jsm -@@ -355,7 +355,7 @@ class AddonInternal { +--- toolkit/mozapps/extensions/internal/XPIDatabase.jsm.orig 2021-11-02 16:39:45.832056000 +0100 ++++ toolkit/mozapps/extensions/internal/XPIDatabase.jsm 2021-11-02 16:40:38.136056000 +0100 +@@ -483,7 +483,7 @@ // Something is causing errors in here try { for (let platform of this.targetPlatforms) { @@ -50,4 +50,4 @@ index f70fd8d7e3bd8..81e8cd7764fdf 100644 + if (platform.os == "Linux" || platform.os == Services.appinfo.OS) { if (platform.abi) { needsABI = true; - if (platform.abi === abi) + if (platform.abi === abi) { diff --git a/www/firefox-esr/files/patch-bug1288587 b/www/firefox-esr/files/patch-bug1288587 index bb3056c74d5f..0925ac98733c 100644 --- a/www/firefox-esr/files/patch-bug1288587 +++ b/www/firefox-esr/files/patch-bug1288587 @@ -2,36 +2,36 @@ diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.confi index 855214a..1e91d51 100644 --- build/moz.configure/init.configure +++ build/moz.configure/init.configure -@@ -251,6 +251,7 @@ option(env='PYTHON3', nargs=1, help='Python 3 interpre - @imports(_from='mozbuild.pythonutil', _import='find_python3_executable') - @imports(_from='mozbuild.pythonutil', _import='python_executable_version') - @imports(_from='six', _import='ensure_text') -+@imports(_from='__builtin__', _import='KeyError') - def virtualenv_python3(env_python, virtualenv_name, build_env, mozconfig, help): +@@ -238,6 +238,7 @@ option( + @imports(_from="mozbuild.pythonutil", _import="find_python3_executable") + @imports(_from="mozbuild.pythonutil", _import="python_executable_version") + @imports(_from="six", _import="ensure_text") ++@imports(_from="__builtin__", _import="KeyError") + def virtualenv_python3(env_python, build_env, mozconfig, help): # Avoid re-executing python when running configure --help. if help: -@@ -283,6 +284,12 @@ def virtualenv_python3(env_python, build_env, mozconfi - python = mozconfig['vars']['added']['PYTHON3'] - elif 'PYTHON3' in mozconfig['vars']['modified']: - python = mozconfig['vars']['modified']['PYTHON3'][1] -+ for i in ('env', 'vars'): -+ for j in ('added', 'modified'): +@@ -271,6 +272,12 @@ def virtualenv_python3(env_python, virtualenv_name, bu + python = mozconfig["vars"]["added"]["PYTHON3"] + elif "PYTHON3" in mozconfig["vars"]["modified"]: + python = mozconfig["vars"]["modified"]["PYTHON3"][1] ++ for i in ("env", "vars"): ++ for j in ("added", "modified"): + try: -+ del mozconfig[i][j]['PYTHON3'] ++ del mozconfig[i][j]["PYTHON3"] + except KeyError: + pass log.debug("python3: executable from configuration: %r" % python) -@@ -365,7 +372,10 @@ def virtualenv_python3(env_python, build_env, mozconfi - sys.executable, manager.python_path)) - log.info('Re-executing in the virtualenv') +@@ -364,7 +371,10 @@ def virtualenv_python3(env_python, virtualenv_name, bu + ) + log.info("Re-executing in the virtualenv") if env_python: -- del os.environ['PYTHON3'] +- del os.environ["PYTHON3"] + try: -+ del os.environ['PYTHON3'] ++ del os.environ["PYTHON3"] + except KeyError: + pass - # Homebrew on macOS will change Python's sys.executable to a custom - # value which messes with mach's virtualenv handling code. Override - # Homebrew's changes with the correct sys.executable value. + # Another quirk on macOS, with the system python, the virtualenv is + # not fully operational (missing entries in sys.path) if + # __PYVENV_LAUNCHER__ is set. diff --git a/www/firefox-esr/files/patch-bug1559213 b/www/firefox-esr/files/patch-bug1559213 index 0100df8d09b0..16928f792f89 100644 --- a/www/firefox-esr/files/patch-bug1559213 +++ b/www/firefox-esr/files/patch-bug1559213 @@ -14,24 +14,24 @@ diff --git config/external/moz.build config/external/moz.build index 03e4fa143bd1..a67d10b11fe6 100644 --- config/external/moz.build +++ config/external/moz.build -@@ -37,8 +37,9 @@ if not CONFIG['MOZ_SYSTEM_LIBVPX']: - external_dirs += ['media/libvpx'] +@@ -40,8 +40,9 @@ if not CONFIG["MOZ_SYSTEM_LIBVPX"]: + external_dirs += ["media/libvpx"] - if CONFIG['MOZ_AV1']: -- external_dirs += ['media/libaom'] -- external_dirs += ['media/libdav1d'] -+ if not CONFIG['MOZ_SYSTEM_AV1']: -+ external_dirs += ['media/libaom'] -+ external_dirs += ['media/libdav1d'] + if CONFIG["MOZ_AV1"]: +- external_dirs += ["media/libaom"] +- external_dirs += ["media/libdav1d"] ++ if not CONFIG["MOZ_SYSTEM_AV1"]: ++ external_dirs += ["media/libaom"] ++ external_dirs += ["media/libdav1d"] - if not CONFIG['MOZ_SYSTEM_PNG']: - external_dirs += ['media/libpng'] + if not CONFIG["MOZ_SYSTEM_PNG"]: + external_dirs += ["media/libpng"] diff --git config/system-headers.mozbuild config/system-headers.mozbuild index bcf5c4925564..48964a999a9b 100644 --- config/system-headers.mozbuild +++ config/system-headers.mozbuild -@@ -1304,6 +1304,14 @@ if CONFIG['MOZ_ENABLE_CONTENTMANAGER']: - 'SelectSingleContentItemPage.h', +@@ -1305,6 +1305,14 @@ if CONFIG['MOZ_SYSTEM_HARFBUZZ']: + 'harfbuzz/hb.h', ] +if CONFIG['MOZ_SYSTEM_AV1']: @@ -49,9 +49,9 @@ diff --git dom/media/platforms/moz.build dom/media/platforms/moz.build index 092cee0c9b66..38e45de5b5f0 100644 --- dom/media/platforms/moz.build +++ dom/media/platforms/moz.build -@@ -80,6 +80,11 @@ if CONFIG['MOZ_AV1']: - 'agnostic/AOMDecoder.cpp', - 'agnostic/DAV1DDecoder.cpp', +@@ -78,6 +78,11 @@ if CONFIG["MOZ_AV1"]: + "agnostic/AOMDecoder.cpp", + "agnostic/DAV1DDecoder.cpp", ] + if CONFIG['MOZ_SYSTEM_AV1']: + CXXFLAGS += CONFIG['MOZ_SYSTEM_LIBAOM_CFLAGS'] @@ -59,25 +59,25 @@ index 092cee0c9b66..38e45de5b5f0 100644 + CXXFLAGS += CONFIG['MOZ_SYSTEM_LIBDAV1D_CFLAGS'] + OS_LIBS += CONFIG['MOZ_SYSTEM_LIBDAV1D_LIBS'] - if CONFIG['MOZ_OMX']: + if CONFIG["MOZ_OMX"]: EXPORTS += [ diff --git toolkit/moz.configure toolkit/moz.configure index 82b5a59acf42..e2329560b42b 100644 ---- toolkit/moz.configure -+++ toolkit/moz.configure -@@ -441,7 +441,23 @@ def av1(value): - if value: +--- toolkit/moz.configure.orig 2021-04-13 16:12:34.770032000 +0200 ++++ toolkit/moz.configure 2021-04-18 00:03:41.432698000 +0200 +@@ -538,7 +538,23 @@ return True --@depends(target, nasm_version, when=av1 & compile_environment) -+option('--with-system-av1', + +-@depends(target, when=av1 & compile_environment) ++option("--with-system-av1", + help="Use system av1 (located with pkgconfig)") + -+system_libaom_info = pkg_check_modules('MOZ_SYSTEM_LIBAOM', 'aom >= 1.0.0', -+ when='--with-system-av1') ++system_libaom_info = pkg_check_modules("MOZ_SYSTEM_LIBAOM", "aom >= 1.0.0", ++ when="--with-system-av1") + -+system_libdav1d_info = pkg_check_modules('MOZ_SYSTEM_LIBDAV1D', 'dav1d >= 0.1.1', -+ when='--with-system-av1') ++system_libdav1d_info = pkg_check_modules("MOZ_SYSTEM_LIBDAV1D", "dav1d >= 0.1.1", ++ when="--with-system-av1") + +@depends(system_libaom_info, system_libdav1d_info) +def system_av1(system_libaom_info, system_libdav1d_info): @@ -86,15 +86,15 @@ index 82b5a59acf42..e2329560b42b 100644 + has_av1_libs = True + return has_av1_libs + -+@depends(target, nasm_version, when=av1 & depends(system_av1)(lambda v: not v) & compile_environment) - def dav1d_asm(target, nasm_version): - if target.os != 'Android': - if target.cpu == 'aarch64': -@@ -457,6 +473,7 @@ set_config('MOZ_DAV1D_ASM', dav1d_asm) - set_define('MOZ_DAV1D_ASM', dav1d_asm) - set_config('MOZ_AV1', av1) - set_define('MOZ_AV1', av1) -+set_config('MOZ_SYSTEM_AV1', depends_if(system_av1)(lambda _: True)) ++@depends(target, when=av1 & depends(system_av1)(lambda v: not v) & compile_environment) + def dav1d_asm(target): + if target.cpu in ("aarch64", "x86", "x86_64"): + return True +@@ -554,6 +570,7 @@ + set_define("MOZ_DAV1D_ASM", dav1d_asm) + set_config("MOZ_AV1", av1) + set_define("MOZ_AV1", av1) ++set_config("MOZ_SYSTEM_AV1", depends_if(system_av1)(lambda _: True)) # Built-in fragmented MP4 support. # ============================================================== diff --git a/www/firefox-esr/files/patch-bug1612184 b/www/firefox-esr/files/patch-bug1612184 index a969fae1f871..33d391a3b647 100644 --- a/www/firefox-esr/files/patch-bug1612184 +++ b/www/firefox-esr/files/patch-bug1612184 @@ -4,7 +4,7 @@ https://bug1612184.bmoattachments.org/attachment.cgi?id=9126363 diff -r 388a4d04e911 media/webrtc/gn-configs/ppc64_False_ppc64_freebsd.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ media/webrtc/gn-configs/ppc64_False_ppc64_freebsd.json Thu Feb 13 11:11:51 2020 +0100 ++++ dom/media/webrtc/third_party_build/gn-configs/ppc64_False_ppc64_freebsd.json Thu Feb 13 11:11:51 2020 +0100 @@ -0,0 +1,13237 @@ +{ + "gn_gen_args": { @@ -13246,7 +13246,7 @@ diff -r 388a4d04e911 media/webrtc/gn-configs/ppc64_False_ppc64_freebsd.json \ No newline at end of file diff -r 388a4d04e911 media/webrtc/gn-configs/ppc64_True_ppc64_freebsd.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ media/webrtc/gn-configs/ppc64_True_ppc64_freebsd.json Thu Feb 13 11:11:51 2020 +0100 ++++ dom/media/webrtc/third_party_build/gn-configs/ppc64_True_ppc64_freebsd.json Thu Feb 13 11:11:51 2020 +0100 @@ -0,0 +1,12693 @@ +{ + "gn_gen_args": { @@ -25943,17 +25943,17 @@ diff -r 388a4d04e911 media/webrtc/gn-configs/ppc64_True_ppc64_freebsd.json +} \ No newline at end of file diff -r 388a4d04e911 media/webrtc/trunk/webrtc/moz.build ---- media/webrtc/trunk/webrtc/moz.build Wed Jan 29 05:21:52 2020 +0000 -+++ media/webrtc/trunk/webrtc/moz.build Thu Feb 13 11:12:15 2020 +0100 -@@ -291,6 +291,13 @@ - "/media/webrtc/trunk/webrtc/modules/video_processing/video_processing_neon_gn" +--- third_party/libwebrtc/webrtc/moz.build.orig 2020-11-10 17:07:54 UTC ++++ third_party/libwebrtc/webrtc/moz.build +@@ -312,6 +312,13 @@ if CONFIG["CPU_ARCH"] == "arm" and CONFIG["OS_TARGET"] + "/third_party/libwebrtc/webrtc/modules/video_processing/video_processing_neon_gn" ] +if CONFIG["CPU_ARCH"] == "ppc64" and CONFIG["OS_TARGET"] == "FreeBSD": + + DIRS += [ -+ "/media/webrtc/trunk/webrtc/api/audio_codecs/isac/audio_decoder_isac_float_gn", -+ "/media/webrtc/trunk/webrtc/api/audio_codecs/isac/audio_encoder_isac_float_gn" ++ "/third_party/libwebrtc/webrtc/api/audio_codecs/isac/audio_decoder_isac_float_gn", ++ "/third_party/libwebrtc/webrtc/api/audio_codecs/isac/audio_encoder_isac_float_gn" + ] + if CONFIG["CPU_ARCH"] == "x86" and CONFIG["OS_TARGET"] == "FreeBSD": diff --git a/www/firefox-esr/files/patch-bug1618914 b/www/firefox-esr/files/patch-bug1618914 index 817d00032222..c52ac49018b2 100644 --- a/www/firefox-esr/files/patch-bug1618914 +++ b/www/firefox-esr/files/patch-bug1618914 @@ -1,10 +1,17 @@ -[Wayland] Fall back to ftruncate if posix_fallocate isn't supported by filesystem. +From cea8e6a01bb03bbe565c9bf5dd4f439f30ca953f Mon Sep 17 00:00:00 2001 +From: Jan Beich +Date: Fri, 28 Feb 2020 16:49:38 +0000 +Subject: Bug 1618914 - [Wayland] Fall back to ftruncate if posix_fallocate isn't supported by filesystem. -diff --git widget/gtk/WindowSurfaceWayland.cpp widget/gtk/WindowSurfaceWayland.cpp -index 9a73326399bd5..9e42a7f1c5d18 100644 ---- widget/gtk/WindowSurfaceWayland.cpp -+++ widget/gtk/WindowSurfaceWayland.cpp -@@ -222,20 +222,21 @@ static int WaylandAllocateShmMemory(int aSize) { +diff --git widget/gtk/WaylandShmBuffer.cpp widget/gtk/WaylandShmBuffer.cpp +index 42eeedd3429ac..2a5c23d287413 100644 +--- widget/gtk/WaylandShmBuffer.cpp ++++ widget/gtk/WaylandShmBuffer.cpp +@@ -67,36 +67,37 @@ static int WaylandAllocateShmMemory(int aSize) { + return -1; + } + + int ret = 0; #ifdef HAVE_POSIX_FALLOCATE do { ret = posix_fallocate(fd, 0, aSize); @@ -13,8 +20,12 @@ index 9a73326399bd5..9e42a7f1c5d18 100644 + if (ret == 0) { + return fd; + } else if (ret != ENODEV && ret != EINVAL && ret != EOPNOTSUPP) { + NS_WARNING( + nsPrintfCString("posix_fallocate() fails to allocate shm memory: %s", + strerror(ret)) + .get()); close(fd); - MOZ_CRASH("posix_fallocate() fails to allocate shm memory"); + return -1; } -#else +#endif @@ -22,20 +33,18 @@ index 9a73326399bd5..9e42a7f1c5d18 100644 ret = ftruncate(fd, aSize); } while (ret < 0 && errno == EINTR); if (ret < 0) { + NS_WARNING(nsPrintfCString("ftruncate() fails to allocate shm memory: %s", + strerror(ret)) + .get()); close(fd); - MOZ_CRASH("ftruncate() fails to allocate shm memory"); + fd = -1; } -#endif return fd; } -@@ -265,8 +266,8 @@ bool WaylandShmPool::Resize(int aSize) { - #ifdef HAVE_POSIX_FALLOCATE - do { - errno = posix_fallocate(mShmPoolFd, 0, aSize); - } while (errno == EINTR); -- if (errno != 0) return false; -+ if (errno != 0 && errno != ENODEV && errno != EINVAL && errno != EOPNOTSUPP) return false; - #endif - wl_shm_pool_resize(mShmPool, aSize); + /* static */ + RefPtr WaylandShmPool::Create( + const RefPtr& aWaylandDisplay, int aSize) { + RefPtr shmPool = new WaylandShmPool(aSize); diff --git a/www/firefox-esr/files/patch-bug1628567 b/www/firefox-esr/files/patch-bug1628567 index f48f78bcfd0d..32b0dc260d22 100644 --- a/www/firefox-esr/files/patch-bug1628567 +++ b/www/firefox-esr/files/patch-bug1628567 @@ -1,8 +1,10 @@ Don't pass --target when CC/CXX contains clang ---- third_party/rust/cc/src/lib.rs.orig 2020-04-10 00:57:23 UTC +diff --git third_party/rust/cc/src/lib.rs third_party/rust/cc/src/lib.rs +index 9d133a0..273e520 100644 +--- third_party/rust/cc/src/lib.rs +++ third_party/rust/cc/src/lib.rs -@@ -2344,28 +2344,7 @@ impl Tool { +@@ -2667,24 +2667,7 @@ impl Tool { } fn with_features(path: PathBuf, clang_driver: Option<&str>, cuda: bool) -> Self { @@ -10,11 +12,7 @@ Don't pass --target when CC/CXX contains clang - let family = if let Some(fname) = path.file_name().and_then(|p| p.to_str()) { - if fname.contains("clang-cl") { - ToolFamily::Msvc { clang_cl: true } -- } else if fname.contains("cl") -- && !fname.contains("cloudabi") -- && !fname.contains("uclibc") -- && !fname.contains("clang") -- { +- } else if fname.ends_with("cl") || fname == "cl.exe" { - ToolFamily::Msvc { clang_cl: false } - } else if fname.contains("clang") { - match clang_driver { diff --git a/www/firefox-esr/files/patch-bug1694575 b/www/firefox-esr/files/patch-bug1694575 deleted file mode 100644 index bbc563272934..000000000000 --- a/www/firefox-esr/files/patch-bug1694575 +++ /dev/null @@ -1,33 +0,0 @@ -changeset: 569030:f875a4ffd653 -user: Mike Hommey -date: Sun Feb 28 17:47:27 2021 +0000 -summary: Bug 1694575 - Don't include mozalloc.h from the iosfwd wrapper. r=andi - -diff -r d31bf2fc599d -r f875a4ffd653 config/gcc-stl-wrapper.template.h ---- config/gcc-stl-wrapper.template.h Sun Feb 28 14:59:31 2021 +0000 -+++ config/gcc-stl-wrapper.template.h Sun Feb 28 17:47:27 2021 +0000 -@@ -27,7 +27,11 @@ - // # define _GLIBCXX_DEBUG 1 - #endif - --// Don't include mozalloc for cstdlib. See bug 1245076. -+// Don't include mozalloc.h for cstdlib, type_traits, limits and iosfwd. -+// See bug 1245076 (cstdlib), bug 1594027 (type_traits, limits) and -+// bug 1694575 (iosfwd). -+// Please be careful when adding more exceptions, especially regarding -+// the header not directly or indirectly including . - #ifndef moz_dont_include_mozalloc_for_cstdlib - # define moz_dont_include_mozalloc_for_cstdlib - #endif -@@ -40,6 +44,10 @@ - # define moz_dont_include_mozalloc_for_limits - #endif - -+#ifndef moz_dont_include_mozalloc_for_iosfwd -+# define moz_dont_include_mozalloc_for_iosfwd -+#endif -+ - // Include mozalloc after the STL header and all other headers it includes - // have been preprocessed. - #if !defined(MOZ_INCLUDE_MOZALLOC_H) && \ - diff --git a/www/firefox-esr/files/patch-bug847568 b/www/firefox-esr/files/patch-bug847568 index 88511da00630..3f688427b494 100644 --- a/www/firefox-esr/files/patch-bug847568 +++ b/www/firefox-esr/files/patch-bug847568 @@ -4,7 +4,7 @@ diff --git config/system-headers.mozbuild config/system-headers.mozbuild index 7620b4d00623..09d3db5ca8c0 100644 --- config/system-headers.mozbuild +++ config/system-headers.mozbuild -@@ -1299,6 +1299,19 @@ if CONFIG['MOZ_ENABLE_LIBPROXY']: +@@ -1292,6 +1292,19 @@ if CONFIG['MOZ_ENABLE_LIBPROXY']: 'proxy.h', ] @@ -28,16 +28,16 @@ diff --git dom/base/moz.build dom/base/moz.build index 8e19020315ae..2fcdbb6f7b42 100644 --- dom/base/moz.build +++ dom/base/moz.build -@@ -543,6 +543,9 @@ if CONFIG['MOZ_BUILD_APP'] in ['browser', 'mobile/android', 'xulrunner']: - if CONFIG['MOZ_X11']: - CXXFLAGS += CONFIG['TK_CFLAGS'] +@@ -546,6 +546,9 @@ if CONFIG["MOZ_BUILD_APP"] in ["browser", "mobile/android", "xulrunner"]: + if CONFIG["MOZ_X11"]: + CXXFLAGS += CONFIG["TK_CFLAGS"] -+if CONFIG['MOZ_SYSTEM_HARFBUZZ']: -+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] ++if CONFIG["MOZ_SYSTEM_HARFBUZZ"]: ++ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"] + - GeneratedFile('UseCounterList.h', script='gen-usecounters.py', - entry_point='use_counter_list', inputs=['UseCounters.conf']) - + GeneratedFile( + "UseCounterList.h", + script="gen-usecounters.py", diff --git gfx/graphite2/geckoextra/moz.build gfx/graphite2/geckoextra/moz.build new file mode 100644 index 0000000000000..24e8d7a03274a @@ -112,35 +112,35 @@ diff --git gfx/moz.build gfx/moz.build index 771f652e837a..3b358d84e384 100644 --- gfx/moz.build +++ gfx/moz.build -@@ -13,6 +13,14 @@ with Files('wr/**'): - if CONFIG['MOZ_TREE_CAIRO']: - DIRS += ['cairo'] +@@ -13,6 +13,14 @@ with Files("wr/**"): + if CONFIG["MOZ_TREE_CAIRO"]: + DIRS += ["cairo"] -+if CONFIG['MOZ_SYSTEM_GRAPHITE2']: -+ DIRS += ['graphite2/geckoextra'] ++if CONFIG["MOZ_SYSTEM_GRAPHITE2"]: ++ DIRS += ["graphite2/geckoextra"] +else: -+ DIRS += ['graphite2/src' ] ++ DIRS += ["graphite2/src" ] + -+if not CONFIG['MOZ_SYSTEM_HARFBUZZ']: -+ DIRS += ['harfbuzz/src'] ++if not CONFIG["MOZ_SYSTEM_HARFBUZZ"]: ++ DIRS += ["harfbuzz/src"] + DIRS += [ - '2d', - 'ycbcr', + "2d", + "ycbcr", @@ -21,8 +29,6 @@ DIRS += [ - 'qcms', - 'gl', - 'layers', -- 'graphite2/src', -- 'harfbuzz/src', - 'ots/src', - 'thebes', - 'ipc', + "qcms", + "gl", + "layers", +- "graphite2/src", +- "harfbuzz/src", + "ots/src", + "thebes", + "ipc", diff --git gfx/skia/generate_mozbuild.py gfx/skia/generate_mozbuild.py index e06ae3457a47..93faa61594a3 100755 --- gfx/skia/generate_mozbuild.py +++ gfx/skia/generate_mozbuild.py -@@ -117,6 +117,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'): +@@ -98,6 +98,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'): '-Wno-unused-private-field', ] @@ -154,7 +154,7 @@ diff --git gfx/skia/moz.build gfx/skia/moz.build index 2118677ca3a8..e4978b413784 100644 --- gfx/skia/moz.build +++ gfx/skia/moz.build -@@ -493,6 +493,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'): +@@ -490,6 +490,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'): '-Wno-unused-private-field', ] @@ -168,49 +168,49 @@ diff --git gfx/thebes/moz.build gfx/thebes/moz.build index 56f1b9fe3f4b..0ac1100b0df3 100644 --- gfx/thebes/moz.build +++ gfx/thebes/moz.build -@@ -284,7 +284,13 @@ if CONFIG['MOZ_WAYLAND']: +@@ -287,7 +287,13 @@ if CONFIG["MOZ_WAYLAND"]: - LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES'] + LOCAL_INCLUDES += CONFIG["SKIA_INCLUDES"] --DEFINES['GRAPHITE2_STATIC'] = True -+if CONFIG['MOZ_SYSTEM_GRAPHITE2']: -+ CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS'] +-DEFINES["GRAPHITE2_STATIC"] = True ++if CONFIG["MOZ_SYSTEM_GRAPHITE2"]: ++ CXXFLAGS += CONFIG["MOZ_GRAPHITE2_CFLAGS"] +else: -+ DEFINES['GRAPHITE2_STATIC'] = True ++ DEFINES["GRAPHITE2_STATIC"] = True + -+if CONFIG['MOZ_SYSTEM_HARFBUZZ']: -+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] ++if CONFIG["MOZ_SYSTEM_HARFBUZZ"]: ++ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"] - if CONFIG['CC_TYPE'] == 'clang': + if CONFIG["CC_TYPE"] == "clang": # Suppress warnings from Skia header files. diff --git intl/unicharutil/util/moz.build intl/unicharutil/util/moz.build index cb1233c56d7e..06fb1f9f174b 100644 --- intl/unicharutil/util/moz.build +++ intl/unicharutil/util/moz.build @@ -25,4 +25,7 @@ UNIFIED_SOURCES += [ - 'nsUnicodeProperties.cpp', + "nsUnicodeProperties.cpp", ] -+if CONFIG['MOZ_SYSTEM_HARFBUZZ']: -+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] ++if CONFIG["MOZ_SYSTEM_HARFBUZZ"]: ++ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"] + - FINAL_LIBRARY = 'xul' + FINAL_LIBRARY = "xul" diff --git netwerk/dns/moz.build netwerk/dns/moz.build index 79c26e3e7001..c4d93bc5f7dc 100644 --- netwerk/dns/moz.build +++ netwerk/dns/moz.build -@@ -86,3 +86,6 @@ USE_LIBS += ['icu'] +@@ -105,3 +105,6 @@ USE_LIBS += ["icu"] - if CONFIG['CC_TYPE'] in ('clang', 'gcc'): - CXXFLAGS += ['-Wno-error=shadow'] + if CONFIG["CC_TYPE"] in ("clang", "gcc"): + CXXFLAGS += ["-Wno-error=shadow"] + -+if CONFIG['MOZ_SYSTEM_HARFBUZZ']: -+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS'] ++if CONFIG["MOZ_SYSTEM_HARFBUZZ"]: ++ CXXFLAGS += CONFIG["MOZ_HARFBUZZ_CFLAGS"] diff --git old-configure.in old-configure.in index 95a58b634593..b614eef85c89 100644 --- old-configure.in +++ old-configure.in -@@ -2639,6 +2639,27 @@ dnl ======================================================== +@@ -2303,6 +2303,27 @@ dnl ======================================================== AC_SUBST(MOZ_LINUX_32_SSE2_STARTUP_ERROR) @@ -242,46 +242,46 @@ diff --git toolkit/library/moz.build toolkit/library/moz.build index 24f940e1ed7e..079a575adec3 100644 --- toolkit/library/moz.build +++ toolkit/library/moz.build -@@ -248,6 +248,12 @@ if CONFIG['MOZ_SYSTEM_PNG']: - if CONFIG['MOZ_SYSTEM_WEBP']: - OS_LIBS += CONFIG['MOZ_WEBP_LIBS'] +@@ -247,6 +247,12 @@ if CONFIG["MOZ_SYSTEM_PNG"]: + if CONFIG["MOZ_SYSTEM_WEBP"]: + OS_LIBS += CONFIG["MOZ_WEBP_LIBS"] -+if CONFIG['MOZ_SYSTEM_GRAPHITE2']: -+ OS_LIBS += CONFIG['MOZ_GRAPHITE2_LIBS'] ++if CONFIG["MOZ_SYSTEM_GRAPHITE2"]: ++ OS_LIBS += CONFIG["MOZ_GRAPHITE2_LIBS"] + -+if CONFIG['MOZ_SYSTEM_HARFBUZZ']: -+ OS_LIBS += CONFIG['MOZ_HARFBUZZ_LIBS'] ++if CONFIG["MOZ_SYSTEM_HARFBUZZ"]: ++ OS_LIBS += CONFIG["MOZ_HARFBUZZ_LIBS"] + - if CONFIG['MOZ_SYSTEM_LIBEVENT']: - OS_LIBS += CONFIG['MOZ_LIBEVENT_LIBS'] + if CONFIG["MOZ_SYSTEM_LIBEVENT"]: + OS_LIBS += CONFIG["MOZ_LIBEVENT_LIBS"] diff --git toolkit/moz.configure toolkit/moz.configure index 9297e4d6f501..d8e273887e4b 100644 --- toolkit/moz.configure +++ toolkit/moz.configure -@@ -937,6 +937,25 @@ add_old_configure_assignment('FT2_LIBS', - add_old_configure_assignment('FT2_CFLAGS', - ft2_info.cflags) +@@ -1055,6 +1055,25 @@ set_config("FT2_LIBS", ft2_info.libs) + add_old_configure_assignment("FT2_LIBS", ft2_info.libs) + add_old_configure_assignment("FT2_CFLAGS", ft2_info.cflags) +# Graphite2 +# ============================================================== -+option('--with-system-graphite2', ++option("--with-system-graphite2", + help="Use system graphite2 (located with pkgconfig)") + -+system_graphite2 = pkg_check_modules('MOZ_GRAPHITE2', 'graphite2', -+ when='--with-system-graphite2') ++system_graphite2 = pkg_check_modules("MOZ_GRAPHITE2", "graphite2", ++ when="--with-system-graphite2") + -+set_config('MOZ_SYSTEM_GRAPHITE2', depends_if(system_graphite2)(lambda _: True)) ++set_config("MOZ_SYSTEM_GRAPHITE2", depends_if(system_graphite2)(lambda _: True)) + +# HarfBuzz +# ============================================================== -+option('--with-system-harfbuzz', ++option("--with-system-harfbuzz", + help="Use system harfbuzz (located with pkgconfig)") + -+system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 2.6.6', -+ when='--with-system-harfbuzz') ++system_harfbuzz = pkg_check_modules("MOZ_HARFBUZZ", "harfbuzz >= 2.7.4", ++ when="--with-system-harfbuzz") + -+set_config('MOZ_SYSTEM_HARFBUZZ', depends_if(system_harfbuzz)(lambda _: True)) ++set_config("MOZ_SYSTEM_HARFBUZZ", depends_if(system_harfbuzz)(lambda _: True)) - # Remote agent (part of CDP based remote protocol) - # ============================================================== + # Remote agent + # (partial implementation of Chromium Remote Debugging Protocol) diff --git a/www/firefox-esr/files/patch-cubeb-oss b/www/firefox-esr/files/patch-cubeb-oss deleted file mode 100644 index 41185cf141fd..000000000000 --- a/www/firefox-esr/files/patch-cubeb-oss +++ /dev/null @@ -1,1324 +0,0 @@ -https://github.com/kinetiknz/cubeb/pull/600 - ---- dom/media/CubebUtils.cpp.orig 2020-08-19 02:08:51 UTC -+++ dom/media/CubebUtils.cpp -@@ -126,7 +126,7 @@ const char kBrandBundleURL[] = "chrome://branding/locale/brand.properties"; - - const char* AUDIOSTREAM_BACKEND_ID_STR[] = { - "jack", "pulse", "alsa", "audiounit", "audioqueue", "wasapi", -- "winmm", "directsound", "sndio", "opensl", "audiotrack", "kai"}; -+ "winmm", "directsound", "sndio", "opensl", "oss", "audiotrack", "kai"}; - /* Index for failures to create an audio stream the first time. */ - const int CUBEB_BACKEND_INIT_FAILURE_FIRST = - ArrayLength(AUDIOSTREAM_BACKEND_ID_STR); ---- media/libcubeb/src/moz.build.orig 2020-08-19 02:09:19 UTC -+++ media/libcubeb/src/moz.build -@@ -40,6 +40,12 @@ if CONFIG['MOZ_JACK']: - ] - DEFINES['USE_JACK'] = True - -+if CONFIG['OS_ARCH'] in ('DragonFly', 'FreeBSD', 'SunOS'): -+ SOURCES += [ -+ 'cubeb_oss.c', -+ ] -+ DEFINES['USE_OSS'] = True -+ - if CONFIG['OS_ARCH'] == 'OpenBSD': - SOURCES += [ - 'cubeb_sndio.c', ---- media/libcubeb/src/cubeb.c.orig 2020-08-19 02:09:26 UTC -+++ media/libcubeb/src/cubeb.c -@@ -60,6 +60,9 @@ int sun_init(cubeb ** context, char const * context_name); - #if defined(USE_OPENSL) - int opensl_init(cubeb ** context, char const * context_name); - #endif -+#if defined(USE_OSS) -+int oss_init(cubeb ** context, char const * context_name); -+#endif - #if defined(USE_AUDIOTRACK) - int audiotrack_init(cubeb ** context, char const * context_name); - #endif -@@ -165,6 +168,10 @@ cubeb_init(cubeb ** context, char const * context_name, char const * backend_nam - #if defined(USE_OPENSL) - init_oneshot = opensl_init; - #endif -+ } else if (!strcmp(backend_name, "oss")) { -+#if defined(USE_OSS) -+ init_oneshot = oss_init; -+#endif - } else if (!strcmp(backend_name, "audiotrack")) { - #if defined(USE_AUDIOTRACK) - init_oneshot = audiotrack_init; -@@ -200,6 +207,9 @@ cubeb_init(cubeb ** context, char const * context_name, char const * backend_nam - #if defined(USE_ALSA) - alsa_init, - #endif -+#if defined (USE_OSS) -+ oss_init, -+#endif - #if defined(USE_AUDIOUNIT_RUST) - audiounit_rust_init, - #endif ---- /dev/null -+++ media/libcubeb/src/cubeb_oss.c -@@ -0,0 +1,1260 @@ -+/* -+ * Copyright © 2019-2020 Nia Alarie -+ * Copyright © 2020 Ka Ho Ng -+ * Copyright © 2020 The FreeBSD Foundation -+ * -+ * Portions of this software were developed by Ka Ho Ng -+ * under sponsorship from the FreeBSD Foundation. -+ * -+ * This program is made available under an ISC-style license. See the -+ * accompanying file LICENSE for details. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include "cubeb/cubeb.h" -+#include "cubeb_mixer.h" -+#include "cubeb_strings.h" -+#include "cubeb-internal.h" -+ -+/* Supported well by most hardware. */ -+#ifndef OSS_PREFER_RATE -+#define OSS_PREFER_RATE (48000) -+#endif -+ -+/* Standard acceptable minimum. */ -+#ifndef OSS_LATENCY_MS -+#define OSS_LATENCY_MS (8) -+#endif -+ -+#ifndef OSS_NFRAGS -+#define OSS_NFRAGS (4) -+#endif -+ -+#ifndef OSS_DEFAULT_DEVICE -+#define OSS_DEFAULT_DEVICE "/dev/dsp" -+#endif -+ -+#ifndef OSS_DEFAULT_MIXER -+#define OSS_DEFAULT_MIXER "/dev/mixer" -+#endif -+ -+#define ENV_AUDIO_DEVICE "AUDIO_DEVICE" -+ -+#ifndef OSS_MAX_CHANNELS -+# if defined(__FreeBSD__) || defined(__DragonFly__) -+/* -+ * The current maximum number of channels supported -+ * on FreeBSD is 8. -+ * -+ * Reference: FreeBSD 12.1-RELEASE -+ */ -+# define OSS_MAX_CHANNELS (8) -+# elif defined(__sun__) -+/* -+ * The current maximum number of channels supported -+ * on Illumos is 16. -+ * -+ * Reference: PSARC 2008/318 -+ */ -+# define OSS_MAX_CHANNELS (16) -+# else -+# define OSS_MAX_CHANNELS (2) -+# endif -+#endif -+ -+#if defined(__FreeBSD__) || defined(__DragonFly__) -+#define SNDSTAT_BEGIN_STR "Installed devices:" -+#define SNDSTAT_USER_BEGIN_STR "Installed devices from userspace:" -+#define SNDSTAT_FV_BEGIN_STR "File Versions:" -+#endif -+ -+static struct cubeb_ops const oss_ops; -+ -+struct cubeb { -+ struct cubeb_ops const * ops; -+ -+ /* Our intern string store */ -+ pthread_mutex_t mutex; /* protects devid_strs */ -+ cubeb_strings *devid_strs; -+}; -+ -+struct oss_stream { -+ oss_devnode_t name; -+ int fd; -+ void * buf; -+ -+ struct stream_info { -+ int channels; -+ int sample_rate; -+ int fmt; -+ int precision; -+ } info; -+ -+ unsigned int frame_size; /* precision in bytes * channels */ -+ bool floating; -+}; -+ -+struct cubeb_stream { -+ struct cubeb * context; -+ void * user_ptr; -+ pthread_t thread; -+ bool doorbell; /* (m) */ -+ pthread_cond_t doorbell_cv; /* (m) */ -+ pthread_cond_t stopped_cv; /* (m) */ -+ pthread_mutex_t mtx; /* Members protected by this should be marked (m) */ -+ bool thread_created; /* (m) */ -+ bool running; /* (m) */ -+ bool destroying; /* (m) */ -+ cubeb_state state; /* (m) */ -+ float volume /* (m) */; -+ struct oss_stream play; -+ struct oss_stream record; -+ cubeb_data_callback data_cb; -+ cubeb_state_callback state_cb; -+ uint64_t frames_written /* (m) */; -+ unsigned int nfr; /* Number of frames allocated */ -+ unsigned int nfrags; -+ unsigned int bufframes; -+}; -+ -+static char const * -+oss_cubeb_devid_intern(cubeb *context, char const * devid) -+{ -+ char const *is; -+ pthread_mutex_lock(&context->mutex); -+ is = cubeb_strings_intern(context->devid_strs, devid); -+ pthread_mutex_unlock(&context->mutex); -+ return is; -+} -+ -+int -+oss_init(cubeb **context, char const *context_name) { -+ cubeb * c; -+ -+ (void)context_name; -+ if ((c = calloc(1, sizeof(cubeb))) == NULL) { -+ return CUBEB_ERROR; -+ } -+ -+ if (cubeb_strings_init(&c->devid_strs) == CUBEB_ERROR) { -+ goto fail; -+ } -+ -+ if (pthread_mutex_init(&c->mutex, NULL) != 0) { -+ goto fail; -+ } -+ -+ c->ops = &oss_ops; -+ *context = c; -+ return CUBEB_OK; -+ -+fail: -+ cubeb_strings_destroy(c->devid_strs); -+ free(c); -+ return CUBEB_ERROR; -+} -+ -+static void -+oss_destroy(cubeb * context) -+{ -+ pthread_mutex_destroy(&context->mutex); -+ cubeb_strings_destroy(context->devid_strs); -+ free(context); -+} -+ -+static char const * -+oss_get_backend_id(cubeb * context) -+{ -+ return "oss"; -+} -+ -+static int *** 1134 LINES SKIPPED ***