Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Jun 2022 11:38:21 GMT
From:      Mikael Urankar <mikael@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 9aad8301d5f7 - main - multimedia/ringrtc: Add new port
Message-ID:  <202206231138.25NBcLFM068586@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by mikael:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9aad8301d5f7aadc3240a2aa4905358b6a40eb82

commit 9aad8301d5f7aadc3240a2aa4905358b6a40eb82
Author:     Mikael Urankar <mikael@FreeBSD.org>
AuthorDate: 2022-06-23 11:21:16 +0000
Commit:     Mikael Urankar <mikael@FreeBSD.org>
CommitDate: 2022-06-23 11:38:16 +0000

    multimedia/ringrtc: Add new port
    
    RingRTC is a middleware library providing Signal Messenger applications
    with video and voice calling services built on top of WebRTC.
    
    WWW: https://github.com/signalapp/ringrtc
---
 multimedia/Makefile                                |   1 +
 multimedia/ringrtc/Makefile                        | 296 +++++++++++++++++++
 multimedia/ringrtc/distinfo                        | 317 +++++++++++++++++++++
 .../ringrtc/files/extra-patch-no-mempcpy-nasm      |  11 +
 multimedia/ringrtc/files/patch-boringssl           |  35 +++
 .../files/patch-cargo-crates_neon-0.9.1_src_lib.rs |  10 +
 multimedia/ringrtc/files/patch-src_rust_build.rs   |  13 +
 .../ringrtc/files/patch-src_webrtc_src_BUILD.gn    |  23 ++
 ..._webrtc_src_base_third__party_libevent_BUILD.gn |  16 ++
 .../patch-src_webrtc_src_build_config_BUILD.gn     |  30 ++
 ...atch-src_webrtc_src_build_config_BUILDCONFIG.gn |  44 +++
 ...h-src_webrtc_src_build_config_compiler_BUILD.gn | 110 +++++++
 ...c_webrtc_src_build_config_compiler_compiler.gni |  11 +
 .../patch-src_webrtc_src_build_config_features.gni |  11 +
 ...c_webrtc_src_build_config_freetype_freetype.gni |   9 +
 ...atch-src_webrtc_src_build_config_linux_BUILD.gn |  11 +
 ...src_webrtc_src_build_config_linux_pkg-config.py |  26 ++
 .../patch-src_webrtc_src_build_config_sysroot.gni  |  14 +
 ...atch-src_webrtc_src_build_detect__host__arch.py |  11 +
 .../patch-src_webrtc_src_build_gn__run__binary.py  |  11 +
 .../patch-src_webrtc_src_build_linux_chrome.map    |  29 ++
 ...atch-src_webrtc_src_build_linux_libpci_BUILD.gn |  53 ++++
 ...h-src_webrtc_src_build_linux_unbundle_libusb.gn |  27 ++
 ..._src_build_linux_unbundle_replace__gn__files.py |  10 +
 ...c_webrtc_src_build_toolchain_gcc__toolchain.gni |  44 +++
 ...c_src_build_toolchain_get__concurrent__links.py |  17 ++
 ...rtc_src_buildtools_third__party_libc++_BUILD.gn |  10 +
 multimedia/ringrtc/files/patch-src_webrtc_src_gn   |  11 +
 ..._rtp__rtcp_source_forward__error__correction.cc |  10 +
 ...-src_webrtc_src_modules_video__capture_BUILD.gn |  11 +
 .../patch-src_webrtc_src_rtc__base_byte__order.h   |  11 +
 ...h-src_webrtc_src_rtc__base_ifaddrs__converter.h |  11 +
 .../patch-src_webrtc_src_rtc__base_ip__address.cc  |  12 +
 .../patch-src_webrtc_src_rtc__base_ip__address.h   |  13 +
 .../patch-src_webrtc_src_rtc__base_network.cc      |  15 +
 .../files/patch-src_webrtc_src_rtc__base_network.h |  13 +
 ...ebrtc_src_rtc__base_physical__socket__server.cc |  47 +++
 ...webrtc_src_rtc__base_physical__socket__server.h |  11 +
 ...webrtc_src_rtc__base_platform__thread__types.cc |  39 +++
 ...tc_src_rtc__base_third__party_sigslot_sigslot.h |  19 ++
 .../patch-src_webrtc_src_system__wrappers_BUILD.gn |  15 +
 .../files/patch-src_webrtc_src_testing_BUILD.gn    |  27 ++
 .../files/patch-src_webrtc_src_testing_test.gni    |  11 +
 ...rtc_src_third__party_nasm_config_config-linux.h |  28 ++
 ...patch-src_webrtc_src_third__party_opus_BUILD.gn |  18 ++
 multimedia/ringrtc/pkg-descr                       |   4 +
 multimedia/ringrtc/update.txt                      |   5 +
 multimedia/ringrtc/webrtc_fetch.sh                 | 107 +++++++
 48 files changed, 1638 insertions(+)

diff --git a/multimedia/Makefile b/multimedia/Makefile
index 6d4b2ef5b41c..5bdea60b01a2 100644
--- a/multimedia/Makefile
+++ b/multimedia/Makefile
@@ -363,6 +363,7 @@
     SUBDIR += recmpeg
     SUBDIR += recordmydesktop
     SUBDIR += replex
+    SUBDIR += ringrtc
     SUBDIR += rtmpdump
     SUBDIR += rubygem-av
     SUBDIR += rubygem-clutter-gstreamer
diff --git a/multimedia/ringrtc/Makefile b/multimedia/ringrtc/Makefile
new file mode 100644
index 000000000000..d749103d0365
--- /dev/null
+++ b/multimedia/ringrtc/Makefile
@@ -0,0 +1,296 @@
+PORTNAME=	ringrtc
+DISTVERSIONPREFIX=	v
+DISTVERSION=	2.20.8
+CATEGORIES=	multimedia
+MASTER_SITES=	LOCAL/mikael/ringrtc/:base \
+		LOCAL/mikael/ringrtc/:boringssl \
+		LOCAL/mikael/ringrtc/:build \
+		LOCAL/mikael/ringrtc/:buildtools \
+		LOCAL/mikael/ringrtc/:catapult \
+		LOCAL/mikael/ringrtc/:icu \
+		LOCAL/mikael/ringrtc/:nasm \
+		LOCAL/mikael/ringrtc/:libjpeg_turbo \
+		LOCAL/mikael/ringrtc/:libsrtp \
+		LOCAL/mikael/ringrtc/:libvpx \
+		LOCAL/mikael/ringrtc/:libyuv \
+		LOCAL/mikael/ringrtc/:third_party \
+		LOCAL/mikael/ringrtc/:testing
+DISTFILES=	base-${BASE_REV}.tar.gz:base \
+		boringssl-${BORINGSSL_REV}.tar.gz:boringssl \
+		build-${BUILD_REV}.tar.gz:build \
+		buildtools-${BUILDTOOLS_REV}.tar.gz:buildtools \
+		catapult-${CATAPULT_REV}.tar.gz:catapult \
+		icu-${ICU_REV}.tar.gz:icu \
+		nasm-${NASM_REV}.tar.gz:nasm \
+		libjpeg_turbo-${LIBJPEG_TURBO_REV}.tar.gz:libjpeg_turbo \
+		libsrtp-${LIBSRTP_REV}.tar.gz:libsrtp \
+		libvpx-${LIBVPX_REV}.tar.gz:libvpx \
+		libyuv-${LIBYUV_REV}.tar.gz:libyuv \
+		third_party-${THIRD_PARTY_REV}.tar.gz:third_party \
+		testing-${TESTING_REV}.tar.gz:testing
+
+MAINTAINER=	mikael@FreeBSD.org
+COMMENT=	Middleware library for Signal-Desktop
+
+LICENSE=	AGPLv3
+LICENSE_FILE=	${WRKSRC}/../../LICENSE
+
+BUILD_DEPENDS=	gn:devel/gn
+LIB_DEPENDS=	libasound.so:audio/alsa-lib \
+		libfreetype.so:print/freetype2 \
+		libpulse.so:audio/pulseaudio
+
+USES=		cargo gnome localbase:ldflags ninja pkgconfig python:3.7+,build \
+		tar:xz
+USE_GNOME=	glib20
+USE_GITHUB=	yes
+GH_ACCOUNT=	signalapp
+GH_TUPLE=	signalapp:ringrtc:${DISTVERSIONPREFIX}${DISTVERSION} \
+		signalapp:webrtc:${WEBRTC_REV}:webrtc
+
+# Add extra-patch-no-mempcpy-nasm only when there's no mempcpy() in base.
+# Nested variable expansion avoids executing the test when not needed for
+# expanding EXTRA_PATCHES.
+EXTRA_PATCHES+=	${"${:!${GREP} mempcpy ${CROSS_SYSROOT}/usr/include/string.h \
+	|| ${TRUE}!}" == "":?${PATCHDIR}/extra-patch-no-mempcpy-nasm:}
+
+# sh net-im/signal-desktop/get_deps.sh
+WEBRTC_REV=	4896c
+
+# modify webrtc_fetch.sh, then sh webrtc_fetch.sh
+BASE_REV=	bee216d6736d6a471879c5fcd32c8aba863d4755
+BORINGSSL_REV=	4d955d20d27bcf3ae71df091ad17d95229a7eb56
+BUILD_REV=	b42b2033819f95b3e43f24e541938c671110966d
+BUILDTOOLS_REV=	d8c375426d8f7f4147f7d4109bb63c12655fb8d6
+CATAPULT_REV=	389f33bb40a3345b73a68613178c789476ceaecf
+ICU_REV=	a9359a84a3969b3019db7d62899afb19642eefcd
+LIBJPEG_TURBO_REV=	22f1a22c99e9dde8cd3c72ead333f425c5a7aa77
+LIBSRTP_REV=	5b7c744eb8310250ccc534f3f86a2015b3887a0a
+LIBVPX_REV=	df0d06de6d3b64e35b9e75ad72c571af061bc7b3
+LIBYUV_REV=	3aebf69d668177e7ee6dbbe0025e5c3dbb525ff2
+NASM_REV=	9215e8e1d0fe474ffd3e16c1a07a0f97089e6224
+TESTING_REV=	c4769e51cb122096ea4cdc5ed6f7e57aa2315447
+THIRD_PARTY_REV=	7835795588c74a353beb1e03b74d45fabfdf295f
+
+BINARY_ALIAS=	python3=${PYTHON_CMD}
+
+# Keep in sync with https://github.com/signalapp/ringrtc/blob/${DISTVERSION}/bin/build-electron#L96
+# Run "gn args out/Release --list" for all variables.
+# Some parts don't have use_system_* flag, and can be turned on/off by using
+# replace_gn_files.py script, some parts just turned on/off for target host
+# OS "target_os == is_bsd", like libusb, libpci.
+GN_ARGS+=	rtc_build_examples=false \
+		rtc_build_tools=false \
+		rtc_include_tests=false \
+		rtc_enable_protobuf=false \
+		rtc_use_x11=false \
+		rtc_enable_sctp=false \
+		rtc_libvpx_build_vp9=false \
+		rtc_include_ilbc=false \
+		use_custom_libcxx=false \
+		is_debug=false \
+		is_clang=true \
+		clang_use_chrome_plugins=false \
+		extra_cxxflags="${CXXFLAGS}" \
+		extra_ldflags="${LDFLAGS}"
+
+MAKE_ARGS=	-C out/${BUILDTYPE}
+
+WRKSRC=		${WRKDIR}/${PORTNAME}-${DISTVERSION}/src/rust
+WEBRTCDIR=	${WRKDIR}/${PORTNAME}-${DISTVERSION}/src/webrtc/src
+
+# fetch -qo - https://raw.githubusercontent.com/signalapp/ringrtc/v2.20.8/src/rust/Cargo.lock | awk -f /usr/ports/Mk/Scripts/cargo-crates.awk
+CARGO_CRATES=	aes-0.7.5 \
+		aho-corasick-0.7.18 \
+		anyhow-1.0.53 \
+		atty-0.2.14 \
+		autocfg-1.1.0 \
+		base64-0.13.0 \
+		bitflags-1.3.2 \
+		block-buffer-0.9.0 \
+		bumpalo-3.9.1 \
+		byteorder-1.4.3 \
+		bytes-1.1.0 \
+		cc-1.0.72 \
+		cesu8-1.1.0 \
+		cfg-if-1.0.0 \
+		chunked_transfer-1.4.0 \
+		cipher-0.3.0 \
+		combine-4.6.3 \
+		cpufeatures-0.2.1 \
+		crypto-mac-0.11.1 \
+		cslice-0.2.0 \
+		ctr-0.8.0 \
+		curve25519-dalek-3.2.0 \
+		digest-0.9.0 \
+		either-1.6.1 \
+		env_logger-0.8.4 \
+		fastrand-1.7.0 \
+		fixedbitset-0.2.0 \
+		form_urlencoded-1.0.1 \
+		futures-0.3.21 \
+		futures-channel-0.3.21 \
+		futures-core-0.3.21 \
+		futures-executor-0.3.21 \
+		futures-io-0.3.21 \
+		futures-macro-0.3.21 \
+		futures-sink-0.3.21 \
+		futures-task-0.3.21 \
+		futures-util-0.3.21 \
+		generic-array-0.14.5 \
+		getrandom-0.1.16 \
+		hashbrown-0.11.2 \
+		heck-0.3.3 \
+		hermit-abi-0.1.19 \
+		hex-0.4.3 \
+		hkdf-0.11.0 \
+		hmac-0.11.0 \
+		humantime-2.1.0 \
+		idna-0.2.3 \
+		indexmap-1.8.0 \
+		instant-0.1.12 \
+		itertools-0.10.3 \
+		itoa-1.0.1 \
+		jni-0.19.0 \
+		jni-sys-0.3.0 \
+		js-sys-0.3.56 \
+		lazy_static-1.4.0 \
+		libc-0.2.117 \
+		libloading-0.6.7 \
+		log-0.4.14 \
+		matches-0.1.9 \
+		memchr-2.4.1 \
+		multimap-0.8.3 \
+		neon-0.9.1 \
+		neon-build-0.9.1 \
+		neon-macros-0.9.1 \
+		neon-runtime-0.9.1 \
+		num_cpus-1.13.1 \
+		num_enum-0.5.6 \
+		num_enum_derive-0.5.6 \
+		once_cell-1.9.0 \
+		opaque-debug-0.3.0 \
+		percent-encoding-2.1.0 \
+		petgraph-0.5.1 \
+		pin-project-lite-0.2.8 \
+		pin-utils-0.1.0 \
+		ppv-lite86-0.2.16 \
+		proc-macro-crate-1.1.0 \
+		proc-macro2-1.0.36 \
+		prost-0.8.0 \
+		prost-build-0.8.0 \
+		prost-derive-0.8.0 \
+		prost-types-0.8.0 \
+		quote-1.0.15 \
+		rand-0.7.3 \
+		rand_chacha-0.2.2 \
+		rand_core-0.5.1 \
+		rand_hc-0.2.0 \
+		redox_syscall-0.2.10 \
+		regex-1.5.5 \
+		regex-syntax-0.6.25 \
+		remove_dir_all-0.5.3 \
+		ring-0.16.20 \
+		rustls-0.19.1 \
+		ryu-1.0.9 \
+		same-file-1.0.6 \
+		sct-0.6.1 \
+		semver-0.9.0 \
+		semver-parser-0.7.0 \
+		serde-1.0.136 \
+		serde_derive-1.0.136 \
+		serde_json-1.0.78 \
+		sha2-0.9.9 \
+		slab-0.4.5 \
+		smallvec-1.8.0 \
+		spin-0.5.2 \
+		static_assertions-1.1.0 \
+		subtle-2.4.1 \
+		syn-1.0.86 \
+		synstructure-0.12.6 \
+		tempfile-3.3.0 \
+		termcolor-1.1.2 \
+		thiserror-1.0.30 \
+		thiserror-impl-1.0.30 \
+		tinyvec-1.5.1 \
+		tinyvec_macros-0.1.0 \
+		tokio-1.16.1 \
+		toml-0.5.8 \
+		typenum-1.15.0 \
+		unicode-bidi-0.3.7 \
+		unicode-normalization-0.1.19 \
+		unicode-segmentation-1.9.0 \
+		unicode-xid-0.2.2 \
+		untrusted-0.7.1 \
+		ureq-2.2.0 \
+		url-2.2.2 \
+		version_check-0.9.4 \
+		walkdir-2.3.2 \
+		wasi-0.9.0+wasi-snapshot-preview1 \
+		wasm-bindgen-0.2.79 \
+		wasm-bindgen-backend-0.2.79 \
+		wasm-bindgen-macro-0.2.79 \
+		wasm-bindgen-macro-support-0.2.79 \
+		wasm-bindgen-shared-0.2.79 \
+		web-sys-0.3.56 \
+		webpki-0.21.4 \
+		webpki-roots-0.21.1 \
+		which-4.2.4 \
+		winapi-0.3.9 \
+		winapi-i686-pc-windows-gnu-0.4.0 \
+		winapi-util-0.1.5 \
+		winapi-x86_64-pc-windows-gnu-0.4.0 \
+		x25519-dalek-1.2.0 \
+		zeroize-1.3.0 \
+		zeroize_derive-1.3.2
+
+CARGO_BUILD_ARGS=	--features electron
+CARGO_INSTALL=		no
+
+USE_LDCONFIG=	yes
+
+MAKE_ENV=	OUTPUT_DIR=${WEBRTCDIR}/out
+
+PLIST_FILES=	lib/libringrtc.so
+
+post-extract:
+	${MKDIR} ${WRKDIR}/${PORTNAME}-${DISTVERSION}/src/webrtc
+	${MV} ${WRKDIR}/webrtc-${WEBRTC_REV} ${WEBRTCDIR}
+	${MV} ${WRKDIR}/base ${WEBRTCDIR}
+	${MV} ${WRKDIR}/build ${WEBRTCDIR}
+	${MV} ${WRKDIR}/buildtools ${WEBRTCDIR}
+	${MV} ${WRKDIR}/testing ${WEBRTCDIR}
+	${MV} ${WRKDIR}/third_party ${WEBRTCDIR}
+	${MV} ${WRKDIR}/catapult ${WEBRTCDIR}/third_party
+	${MV} ${WRKDIR}/boringssl ${WEBRTCDIR}/third_party/boringssl/src
+	${MV} ${WRKDIR}/icu ${WEBRTCDIR}/third_party
+	${MV} ${WRKDIR}/libjpeg_turbo ${WEBRTCDIR}/third_party
+	${MV} ${WRKDIR}/libsrtp ${WEBRTCDIR}/third_party
+	${MV} ${WRKDIR}/libvpx ${WEBRTCDIR}/third_party/libvpx/source
+	${MV} ${WRKDIR}/libyuv ${WEBRTCDIR}/third_party
+	${MV} ${WRKDIR}/nasm ${WEBRTCDIR}/third_party
+
+post-patch:
+	${REINPLACE_CMD} "s|LOCALBASE|${LOCALBASE}|" \
+		${WEBRTCDIR}/build/toolchain/gcc_toolchain.gni \
+		${WEBRTCDIR}/buildtools/third_party/libc++/BUILD.gn
+
+	${ECHO} "# Generated from 'DEPS'" > ${WEBRTCDIR}/build/config/gclient_args.gni
+	${ECHO} 1591703586 > ${WEBRTCDIR}/build/util/LASTCHANGE.committime
+	${ECHO} "qqchose " > ${WEBRTCDIR}/build/util/LASTCHANGE
+
+pre-build:
+	cd ${WEBRTCDIR} && \
+		${SETENV} ${CONFIGURE_ENV} gn gen out/release --args='${GN_ARGS}'
+
+# build webrtc first, ringrtc needs libwebrtc.a
+	cd ${WEBRTCDIR} \
+		&& ${MAKE_ENV} CC=ccache CXX=ccache ninja -C out/release
+
+# it's not intended to be used outside of signal-desktop, put that in
+# /usr/local/share/ringrtc instead?
+do-install:
+	${INSTALL_LIB} ${CARGO_TARGET_DIR}/${CARGO_BUILD_TARGET}/release/libringrtc.so \
+		${STAGEDIR}${PREFIX}/lib/
+
+.include <bsd.port.mk>
diff --git a/multimedia/ringrtc/distinfo b/multimedia/ringrtc/distinfo
new file mode 100644
index 000000000000..f37e66ca123a
--- /dev/null
+++ b/multimedia/ringrtc/distinfo
@@ -0,0 +1,317 @@
+TIMESTAMP = 1655470080
+SHA256 (base-bee216d6736d6a471879c5fcd32c8aba863d4755.tar.gz) = 08778dd5f85b82d9f4df68756212e1425c56fe9ea366096249fe3fde0a0c9fc7
+SIZE (base-bee216d6736d6a471879c5fcd32c8aba863d4755.tar.gz) = 5198015
+SHA256 (boringssl-4d955d20d27bcf3ae71df091ad17d95229a7eb56.tar.gz) = 4bb8e1a9aae299ad36b4296e72e282756792f3aff04aba2147d040c510f0eac8
+SIZE (boringssl-4d955d20d27bcf3ae71df091ad17d95229a7eb56.tar.gz) = 30883579
+SHA256 (build-b42b2033819f95b3e43f24e541938c671110966d.tar.gz) = a5647852fab800e5a3d0dd9ac4bd28bc027449d86d254df780544630206c78bc
+SIZE (build-b42b2033819f95b3e43f24e541938c671110966d.tar.gz) = 1417417
+SHA256 (buildtools-d8c375426d8f7f4147f7d4109bb63c12655fb8d6.tar.gz) = 62a9e1f5e65ae792a4ae92fa61c7e834f267602287f77d8b2768049c1224aab3
+SIZE (buildtools-d8c375426d8f7f4147f7d4109bb63c12655fb8d6.tar.gz) = 88366
+SHA256 (catapult-389f33bb40a3345b73a68613178c789476ceaecf.tar.gz) = fcd58798d90bcac1e26fc0c86de710632d9fc25076a0ba6af51e9fbc906a1e00
+SIZE (catapult-389f33bb40a3345b73a68613178c789476ceaecf.tar.gz) = 157554598
+SHA256 (icu-a9359a84a3969b3019db7d62899afb19642eefcd.tar.gz) = 589cad17812e1278d1c48656d16f0c3d6b4874d5531060b6e343c32e000864f4
+SIZE (icu-a9359a84a3969b3019db7d62899afb19642eefcd.tar.gz) = 52877531
+SHA256 (nasm-9215e8e1d0fe474ffd3e16c1a07a0f97089e6224.tar.gz) = d4f382150be6408efecf44e7158e909eb8c1a58bcd16c39a434e6b3b31bf5cf7
+SIZE (nasm-9215e8e1d0fe474ffd3e16c1a07a0f97089e6224.tar.gz) = 1550652
+SHA256 (libjpeg_turbo-22f1a22c99e9dde8cd3c72ead333f425c5a7aa77.tar.gz) = 774aadf0ae4827ce77645442f8fba552c0be068c0bec7933fa99f4a490931433
+SIZE (libjpeg_turbo-22f1a22c99e9dde8cd3c72ead333f425c5a7aa77.tar.gz) = 2382951
+SHA256 (libsrtp-5b7c744eb8310250ccc534f3f86a2015b3887a0a.tar.gz) = 727d9475ada02cf1adc336ab22beed08cc3644bf141d97ed8ab3873a1dbac32c
+SIZE (libsrtp-5b7c744eb8310250ccc534f3f86a2015b3887a0a.tar.gz) = 139073
+SHA256 (libvpx-df0d06de6d3b64e35b9e75ad72c571af061bc7b3.tar.gz) = 35aee76014e959078d7429ab6ba80fba98d4b07736755d2046d411c9fda6bf56
+SIZE (libvpx-df0d06de6d3b64e35b9e75ad72c571af061bc7b3.tar.gz) = 5460415
+SHA256 (libyuv-3aebf69d668177e7ee6dbbe0025e5c3dbb525ff2.tar.gz) = 1be57594ecc01e7471dd399d4f9c7a96147cc4e55d0a6b80649c7a37372309a2
+SIZE (libyuv-3aebf69d668177e7ee6dbbe0025e5c3dbb525ff2.tar.gz) = 537974
+SHA256 (third_party-7835795588c74a353beb1e03b74d45fabfdf295f.tar.gz) = 8de79046947dee5981ff003ba10e0f1fd2c66d049c589ac53e7deb1fbaaf0049
+SIZE (third_party-7835795588c74a353beb1e03b74d45fabfdf295f.tar.gz) = 1072053748
+SHA256 (testing-c4769e51cb122096ea4cdc5ed6f7e57aa2315447.tar.gz) = 45ec526935cb4e3d9efe16140b231815e397f5c33c4c634d5c100ec6fc850a06
+SIZE (testing-c4769e51cb122096ea4cdc5ed6f7e57aa2315447.tar.gz) = 4709882
+SHA256 (rust/crates/aes-0.7.5.crate) = 9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8
+SIZE (rust/crates/aes-0.7.5.crate) = 128544
+SHA256 (rust/crates/aho-corasick-0.7.18.crate) = 1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f
+SIZE (rust/crates/aho-corasick-0.7.18.crate) = 112923
+SHA256 (rust/crates/anyhow-1.0.53.crate) = 94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0
+SIZE (rust/crates/anyhow-1.0.53.crate) = 44233
+SHA256 (rust/crates/atty-0.2.14.crate) = d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8
+SIZE (rust/crates/atty-0.2.14.crate) = 5470
+SHA256 (rust/crates/autocfg-1.1.0.crate) = d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa
+SIZE (rust/crates/autocfg-1.1.0.crate) = 13272
+SHA256 (rust/crates/base64-0.13.0.crate) = 904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd
+SIZE (rust/crates/base64-0.13.0.crate) = 62070
+SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a
+SIZE (rust/crates/bitflags-1.3.2.crate) = 23021
+SHA256 (rust/crates/block-buffer-0.9.0.crate) = 4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4
+SIZE (rust/crates/block-buffer-0.9.0.crate) = 7108
+SHA256 (rust/crates/bumpalo-3.9.1.crate) = a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899
+SIZE (rust/crates/bumpalo-3.9.1.crate) = 77507
+SHA256 (rust/crates/byteorder-1.4.3.crate) = 14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610
+SIZE (rust/crates/byteorder-1.4.3.crate) = 22512
+SHA256 (rust/crates/bytes-1.1.0.crate) = c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8
+SIZE (rust/crates/bytes-1.1.0.crate) = 49640
+SHA256 (rust/crates/cc-1.0.72.crate) = 22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee
+SIZE (rust/crates/cc-1.0.72.crate) = 57495
+SHA256 (rust/crates/cesu8-1.1.0.crate) = 6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c
+SIZE (rust/crates/cesu8-1.1.0.crate) = 10555
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/chunked_transfer-1.4.0.crate) = fff857943da45f546682664a79488be82e69e43c1a7a2307679ab9afb3a66d2e
+SIZE (rust/crates/chunked_transfer-1.4.0.crate) = 9238
+SHA256 (rust/crates/cipher-0.3.0.crate) = 7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7
+SIZE (rust/crates/cipher-0.3.0.crate) = 12756
+SHA256 (rust/crates/combine-4.6.3.crate) = 50b727aacc797f9fc28e355d21f34709ac4fc9adecfe470ad07b8f4464f53062
+SIZE (rust/crates/combine-4.6.3.crate) = 132015
+SHA256 (rust/crates/cpufeatures-0.2.1.crate) = 95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469
+SIZE (rust/crates/cpufeatures-0.2.1.crate) = 10500
+SHA256 (rust/crates/crypto-mac-0.11.1.crate) = b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714
+SIZE (rust/crates/crypto-mac-0.11.1.crate) = 9551
+SHA256 (rust/crates/cslice-0.2.0.crate) = 697c714f50560202b1f4e2e09cd50a421881c83e9025db75d15f276616f04f40
+SIZE (rust/crates/cslice-0.2.0.crate) = 6114
+SHA256 (rust/crates/ctr-0.8.0.crate) = 049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea
+SIZE (rust/crates/ctr-0.8.0.crate) = 17740
+SHA256 (rust/crates/curve25519-dalek-3.2.0.crate) = 0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61
+SIZE (rust/crates/curve25519-dalek-3.2.0.crate) = 517530
+SHA256 (rust/crates/digest-0.9.0.crate) = d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066
+SIZE (rust/crates/digest-0.9.0.crate) = 13247
+SHA256 (rust/crates/either-1.6.1.crate) = e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457
+SIZE (rust/crates/either-1.6.1.crate) = 13641
+SHA256 (rust/crates/env_logger-0.8.4.crate) = a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3
+SIZE (rust/crates/env_logger-0.8.4.crate) = 33342
+SHA256 (rust/crates/fastrand-1.7.0.crate) = c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf
+SIZE (rust/crates/fastrand-1.7.0.crate) = 11265
+SHA256 (rust/crates/fixedbitset-0.2.0.crate) = 37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d
+SIZE (rust/crates/fixedbitset-0.2.0.crate) = 13597
+SHA256 (rust/crates/form_urlencoded-1.0.1.crate) = 5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191
+SIZE (rust/crates/form_urlencoded-1.0.1.crate) = 8773
+SHA256 (rust/crates/futures-0.3.21.crate) = f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e
+SIZE (rust/crates/futures-0.3.21.crate) = 49935
+SHA256 (rust/crates/futures-channel-0.3.21.crate) = c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010
+SIZE (rust/crates/futures-channel-0.3.21.crate) = 31961
+SHA256 (rust/crates/futures-core-0.3.21.crate) = 0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3
+SIZE (rust/crates/futures-core-0.3.21.crate) = 14601
+SHA256 (rust/crates/futures-executor-0.3.21.crate) = 9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6
+SIZE (rust/crates/futures-executor-0.3.21.crate) = 17306
+SHA256 (rust/crates/futures-io-0.3.21.crate) = fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b
+SIZE (rust/crates/futures-io-0.3.21.crate) = 8902
+SHA256 (rust/crates/futures-macro-0.3.21.crate) = 33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512
+SIZE (rust/crates/futures-macro-0.3.21.crate) = 11250
+SHA256 (rust/crates/futures-sink-0.3.21.crate) = 21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868
+SIZE (rust/crates/futures-sink-0.3.21.crate) = 7843
+SHA256 (rust/crates/futures-task-0.3.21.crate) = 57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a
+SIZE (rust/crates/futures-task-0.3.21.crate) = 11815
+SHA256 (rust/crates/futures-util-0.3.21.crate) = d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a
+SIZE (rust/crates/futures-util-0.3.21.crate) = 153768
+SHA256 (rust/crates/generic-array-0.14.5.crate) = fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803
+SIZE (rust/crates/generic-array-0.14.5.crate) = 28915
+SHA256 (rust/crates/getrandom-0.1.16.crate) = 8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce
+SIZE (rust/crates/getrandom-0.1.16.crate) = 25077
+SHA256 (rust/crates/hashbrown-0.11.2.crate) = ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e
+SIZE (rust/crates/hashbrown-0.11.2.crate) = 85713
+SHA256 (rust/crates/heck-0.3.3.crate) = 6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c
+SIZE (rust/crates/heck-0.3.3.crate) = 10260
+SHA256 (rust/crates/hermit-abi-0.1.19.crate) = 62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33
+SIZE (rust/crates/hermit-abi-0.1.19.crate) = 9979
+SHA256 (rust/crates/hex-0.4.3.crate) = 7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70
+SIZE (rust/crates/hex-0.4.3.crate) = 13299
+SHA256 (rust/crates/hkdf-0.11.0.crate) = 01706d578d5c281058480e673ae4086a9f4710d8df1ad80a5b03e39ece5f886b
+SIZE (rust/crates/hkdf-0.11.0.crate) = 171707
+SHA256 (rust/crates/hmac-0.11.0.crate) = 2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b
+SIZE (rust/crates/hmac-0.11.0.crate) = 11385
+SHA256 (rust/crates/humantime-2.1.0.crate) = 9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4
+SIZE (rust/crates/humantime-2.1.0.crate) = 16749
+SHA256 (rust/crates/idna-0.2.3.crate) = 418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8
+SIZE (rust/crates/idna-0.2.3.crate) = 271023
+SHA256 (rust/crates/indexmap-1.8.0.crate) = 282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223
+SIZE (rust/crates/indexmap-1.8.0.crate) = 52583
+SHA256 (rust/crates/instant-0.1.12.crate) = 7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c
+SIZE (rust/crates/instant-0.1.12.crate) = 6128
+SHA256 (rust/crates/itertools-0.10.3.crate) = a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3
+SIZE (rust/crates/itertools-0.10.3.crate) = 118661
+SHA256 (rust/crates/itoa-1.0.1.crate) = 1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35
+SIZE (rust/crates/itoa-1.0.1.crate) = 11059
+SHA256 (rust/crates/jni-0.19.0.crate) = c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec
+SIZE (rust/crates/jni-0.19.0.crate) = 65890
+SHA256 (rust/crates/jni-sys-0.3.0.crate) = 8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130
+SIZE (rust/crates/jni-sys-0.3.0.crate) = 10232
+SHA256 (rust/crates/js-sys-0.3.56.crate) = a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04
+SIZE (rust/crates/js-sys-0.3.56.crate) = 70520
+SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
+SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443
+SHA256 (rust/crates/libc-0.2.117.crate) = e74d72e0f9b65b5b4ca49a346af3976df0f9c61d550727f349ecd559f251a26c
+SIZE (rust/crates/libc-0.2.117.crate) = 566541
+SHA256 (rust/crates/libloading-0.6.7.crate) = 351a32417a12d5f7e82c368a66781e307834dae04c6ce0cd4456d52989229883
+SIZE (rust/crates/libloading-0.6.7.crate) = 25037
+SHA256 (rust/crates/log-0.4.14.crate) = 51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710
+SIZE (rust/crates/log-0.4.14.crate) = 34582
+SHA256 (rust/crates/matches-0.1.9.crate) = a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f
+SIZE (rust/crates/matches-0.1.9.crate) = 2246
+SHA256 (rust/crates/memchr-2.4.1.crate) = 308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a
+SIZE (rust/crates/memchr-2.4.1.crate) = 64977
+SHA256 (rust/crates/multimap-0.8.3.crate) = e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a
+SIZE (rust/crates/multimap-0.8.3.crate) = 13518
+SHA256 (rust/crates/neon-0.9.1.crate) = 5e85820b585bf3360bf158ac87a75764c48e361c91bbeb69873e6613cc78c023
+SIZE (rust/crates/neon-0.9.1.crate) = 211905
+SHA256 (rust/crates/neon-build-0.9.1.crate) = ad9febc63f515156d4311a0c43899d3ace46352ecdd591c21b98ca3974f2a0d0
+SIZE (rust/crates/neon-build-0.9.1.crate) = 7812
+SHA256 (rust/crates/neon-macros-0.9.1.crate) = 987f12c91eb6ce0b67819f7c5fb4d391de64cf411c605ed027f03507a33943b2
+SIZE (rust/crates/neon-macros-0.9.1.crate) = 6821
+SHA256 (rust/crates/neon-runtime-0.9.1.crate) = 02662cd2e62b131937bdef85d0918b05bc3c204daf4c64af62845403eccb60f3
+SIZE (rust/crates/neon-runtime-0.9.1.crate) = 20937
+SHA256 (rust/crates/num_cpus-1.13.1.crate) = 19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1
+SIZE (rust/crates/num_cpus-1.13.1.crate) = 14752
+SHA256 (rust/crates/num_enum-0.5.6.crate) = 720d3ea1055e4e4574c0c0b0f8c3fd4f24c4cdaf465948206dea090b57b526ad
+SIZE (rust/crates/num_enum-0.5.6.crate) = 13721
+SHA256 (rust/crates/num_enum_derive-0.5.6.crate) = 0d992b768490d7fe0d8586d9b5745f6c49f557da6d81dc982b1d167ad4edbb21
+SIZE (rust/crates/num_enum_derive-0.5.6.crate) = 11672
+SHA256 (rust/crates/once_cell-1.9.0.crate) = da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5
+SIZE (rust/crates/once_cell-1.9.0.crate) = 30702
+SHA256 (rust/crates/opaque-debug-0.3.0.crate) = 624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5
+SIZE (rust/crates/opaque-debug-0.3.0.crate) = 5767
+SHA256 (rust/crates/percent-encoding-2.1.0.crate) = d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e
+SIZE (rust/crates/percent-encoding-2.1.0.crate) = 9748
+SHA256 (rust/crates/petgraph-0.5.1.crate) = 467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7
+SIZE (rust/crates/petgraph-0.5.1.crate) = 147173
+SHA256 (rust/crates/pin-project-lite-0.2.8.crate) = e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c
+SIZE (rust/crates/pin-project-lite-0.2.8.crate) = 27847
+SHA256 (rust/crates/pin-utils-0.1.0.crate) = 8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184
+SIZE (rust/crates/pin-utils-0.1.0.crate) = 7580
+SHA256 (rust/crates/ppv-lite86-0.2.16.crate) = eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872
+SIZE (rust/crates/ppv-lite86-0.2.16.crate) = 22245
+SHA256 (rust/crates/proc-macro-crate-1.1.0.crate) = 1ebace6889caf889b4d3f76becee12e90353f2b8c7d875534a71e5742f8f6f83
+SIZE (rust/crates/proc-macro-crate-1.1.0.crate) = 8535
+SHA256 (rust/crates/proc-macro2-1.0.36.crate) = c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029
+SIZE (rust/crates/proc-macro2-1.0.36.crate) = 41411
+SHA256 (rust/crates/prost-0.8.0.crate) = de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020
+SIZE (rust/crates/prost-0.8.0.crate) = 25532
+SHA256 (rust/crates/prost-build-0.8.0.crate) = 355f634b43cdd80724ee7848f95770e7e70eefa6dcf14fea676216573b8fd603
+SIZE (rust/crates/prost-build-0.8.0.crate) = 8407464
+SHA256 (rust/crates/prost-derive-0.8.0.crate) = 600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efba
+SIZE (rust/crates/prost-derive-0.8.0.crate) = 15203
+SHA256 (rust/crates/prost-types-0.8.0.crate) = 603bbd6394701d13f3f25aada59c7de9d35a6a5887cfc156181234a44002771b
+SIZE (rust/crates/prost-types-0.8.0.crate) = 27271
+SHA256 (rust/crates/quote-1.0.15.crate) = 864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145
+SIZE (rust/crates/quote-1.0.15.crate) = 27281
+SHA256 (rust/crates/rand-0.7.3.crate) = 6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03
+SIZE (rust/crates/rand-0.7.3.crate) = 112246
+SHA256 (rust/crates/rand_chacha-0.2.2.crate) = f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402
+SIZE (rust/crates/rand_chacha-0.2.2.crate) = 13267
+SHA256 (rust/crates/rand_core-0.5.1.crate) = 90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19
+SIZE (rust/crates/rand_core-0.5.1.crate) = 21116
+SHA256 (rust/crates/rand_hc-0.2.0.crate) = ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c
+SIZE (rust/crates/rand_hc-0.2.0.crate) = 11670
+SHA256 (rust/crates/redox_syscall-0.2.10.crate) = 8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff
+SIZE (rust/crates/redox_syscall-0.2.10.crate) = 23582
+SHA256 (rust/crates/regex-1.5.5.crate) = 1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286
+SIZE (rust/crates/regex-1.5.5.crate) = 238119
+SHA256 (rust/crates/regex-syntax-0.6.25.crate) = f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b
+SIZE (rust/crates/regex-syntax-0.6.25.crate) = 293293
+SHA256 (rust/crates/remove_dir_all-0.5.3.crate) = 3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7
+SIZE (rust/crates/remove_dir_all-0.5.3.crate) = 9184
+SHA256 (rust/crates/ring-0.16.20.crate) = 3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc
+SIZE (rust/crates/ring-0.16.20.crate) = 5082615
+SHA256 (rust/crates/rustls-0.19.1.crate) = 35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7
+SIZE (rust/crates/rustls-0.19.1.crate) = 208143
+SHA256 (rust/crates/ryu-1.0.9.crate) = 73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f
+SIZE (rust/crates/ryu-1.0.9.crate) = 48391
+SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
+SIZE (rust/crates/same-file-1.0.6.crate) = 10183
+SHA256 (rust/crates/sct-0.6.1.crate) = b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce
+SIZE (rust/crates/sct-0.6.1.crate) = 26825
+SHA256 (rust/crates/semver-0.9.0.crate) = 1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403
+SIZE (rust/crates/semver-0.9.0.crate) = 17344
+SHA256 (rust/crates/semver-parser-0.7.0.crate) = 388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3
+SIZE (rust/crates/semver-parser-0.7.0.crate) = 10268
+SHA256 (rust/crates/serde-1.0.136.crate) = ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789
+SIZE (rust/crates/serde-1.0.136.crate) = 76158
+SHA256 (rust/crates/serde_derive-1.0.136.crate) = 08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9
+SIZE (rust/crates/serde_derive-1.0.136.crate) = 54776
+SHA256 (rust/crates/serde_json-1.0.78.crate) = d23c1ba4cf0efd44be32017709280b32d1cea5c3f1275c3b6d9e8bc54f758085
+SIZE (rust/crates/serde_json-1.0.78.crate) = 144364
+SHA256 (rust/crates/sha2-0.9.9.crate) = 4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800
+SIZE (rust/crates/sha2-0.9.9.crate) = 22247
+SHA256 (rust/crates/slab-0.4.5.crate) = 9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5
+SIZE (rust/crates/slab-0.4.5.crate) = 15888
+SHA256 (rust/crates/smallvec-1.8.0.crate) = f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83
+SIZE (rust/crates/smallvec-1.8.0.crate) = 27992
+SHA256 (rust/crates/spin-0.5.2.crate) = 6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d
+SIZE (rust/crates/spin-0.5.2.crate) = 12004
+SHA256 (rust/crates/static_assertions-1.1.0.crate) = a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f
+SIZE (rust/crates/static_assertions-1.1.0.crate) = 18480
+SHA256 (rust/crates/subtle-2.4.1.crate) = 6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601
+SIZE (rust/crates/subtle-2.4.1.crate) = 12630
+SHA256 (rust/crates/syn-1.0.86.crate) = 8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b
+SIZE (rust/crates/syn-1.0.86.crate) = 235126
+SHA256 (rust/crates/synstructure-0.12.6.crate) = f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f
+SIZE (rust/crates/synstructure-0.12.6.crate) = 18429
+SHA256 (rust/crates/tempfile-3.3.0.crate) = 5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4
+SIZE (rust/crates/tempfile-3.3.0.crate) = 27578
+SHA256 (rust/crates/termcolor-1.1.2.crate) = 2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4
+SIZE (rust/crates/termcolor-1.1.2.crate) = 17287
+SHA256 (rust/crates/thiserror-1.0.30.crate) = 854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417
+SIZE (rust/crates/thiserror-1.0.30.crate) = 17748
+SHA256 (rust/crates/thiserror-impl-1.0.30.crate) = aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b
+SIZE (rust/crates/thiserror-impl-1.0.30.crate) = 15230
+SHA256 (rust/crates/tinyvec-1.5.1.crate) = 2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2
+SIZE (rust/crates/tinyvec-1.5.1.crate) = 44942
+SHA256 (rust/crates/tinyvec_macros-0.1.0.crate) = cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c
+SIZE (rust/crates/tinyvec_macros-0.1.0.crate) = 1817
+SHA256 (rust/crates/tokio-1.16.1.crate) = 0c27a64b625de6d309e8c57716ba93021dccf1b3b5c97edd6d3dd2d2135afc0a
+SIZE (rust/crates/tokio-1.16.1.crate) = 552194
+SHA256 (rust/crates/toml-0.5.8.crate) = a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa
+SIZE (rust/crates/toml-0.5.8.crate) = 54219
+SHA256 (rust/crates/typenum-1.15.0.crate) = dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987
+SIZE (rust/crates/typenum-1.15.0.crate) = 40741
+SHA256 (rust/crates/unicode-bidi-0.3.7.crate) = 1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f
+SIZE (rust/crates/unicode-bidi-0.3.7.crate) = 33759
+SHA256 (rust/crates/unicode-normalization-0.1.19.crate) = d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9
+SIZE (rust/crates/unicode-normalization-0.1.19.crate) = 107353
+SHA256 (rust/crates/unicode-segmentation-1.9.0.crate) = 7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99
+SIZE (rust/crates/unicode-segmentation-1.9.0.crate) = 93241
+SHA256 (rust/crates/unicode-xid-0.2.2.crate) = 8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3
+SIZE (rust/crates/unicode-xid-0.2.2.crate) = 14955
+SHA256 (rust/crates/untrusted-0.7.1.crate) = a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a
+SIZE (rust/crates/untrusted-0.7.1.crate) = 7924
+SHA256 (rust/crates/ureq-2.2.0.crate) = 3131cd6cb18488da91da1d10ed31e966f453c06b65bf010d35638456976a3fd7
+SIZE (rust/crates/ureq-2.2.0.crate) = 80014
+SHA256 (rust/crates/url-2.2.2.crate) = a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c
+SIZE (rust/crates/url-2.2.2.crate) = 68555
+SHA256 (rust/crates/version_check-0.9.4.crate) = 49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f
+SIZE (rust/crates/version_check-0.9.4.crate) = 14895
+SHA256 (rust/crates/walkdir-2.3.2.crate) = 808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56
+SIZE (rust/crates/walkdir-2.3.2.crate) = 23516
+SHA256 (rust/crates/wasi-0.9.0+wasi-snapshot-preview1.crate) = cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519
+SIZE (rust/crates/wasi-0.9.0+wasi-snapshot-preview1.crate) = 31521
+SHA256 (rust/crates/wasm-bindgen-0.2.79.crate) = 25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06
+SIZE (rust/crates/wasm-bindgen-0.2.79.crate) = 164276
+SHA256 (rust/crates/wasm-bindgen-backend-0.2.79.crate) = 8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca
+SIZE (rust/crates/wasm-bindgen-backend-0.2.79.crate) = 25776
+SHA256 (rust/crates/wasm-bindgen-macro-0.2.79.crate) = 2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01
+SIZE (rust/crates/wasm-bindgen-macro-0.2.79.crate) = 11806
+SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.79.crate) = bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc
+SIZE (rust/crates/wasm-bindgen-macro-support-0.2.79.crate) = 17861
+SHA256 (rust/crates/wasm-bindgen-shared-0.2.79.crate) = 3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2
+SIZE (rust/crates/wasm-bindgen-shared-0.2.79.crate) = 7204
+SHA256 (rust/crates/web-sys-0.3.56.crate) = c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb
+SIZE (rust/crates/web-sys-0.3.56.crate) = 666465
+SHA256 (rust/crates/webpki-0.21.4.crate) = b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea
+SIZE (rust/crates/webpki-0.21.4.crate) = 58505
+SHA256 (rust/crates/webpki-roots-0.21.1.crate) = aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940
+SIZE (rust/crates/webpki-roots-0.21.1.crate) = 223591
+SHA256 (rust/crates/which-4.2.4.crate) = 2a5a7e487e921cf220206864a94a89b6c6905bfc19f1057fa26a4cb360e5c1d2
+SIZE (rust/crates/which-4.2.4.crate) = 9259
+SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
+SIZE (rust/crates/winapi-0.3.9.crate) = 1200382
+SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
+SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815
+SHA256 (rust/crates/winapi-util-0.1.5.crate) = 70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178
+SIZE (rust/crates/winapi-util-0.1.5.crate) = 10164
+SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
+SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998
+SHA256 (rust/crates/x25519-dalek-1.2.0.crate) = 2392b6b94a576b4e2bf3c5b2757d63f10ada8020a2e4d08ac849ebcf6ea8e077
+SIZE (rust/crates/x25519-dalek-1.2.0.crate) = 88676
+SHA256 (rust/crates/zeroize-1.3.0.crate) = 4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd
+SIZE (rust/crates/zeroize-1.3.0.crate) = 15913
+SHA256 (rust/crates/zeroize_derive-1.3.2.crate) = 3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17
+SIZE (rust/crates/zeroize_derive-1.3.2.crate) = 10299
+SHA256 (signalapp-ringrtc-v2.20.8_GH0.tar.gz) = a7e5052ceecd88d928320880ed5131520f7b4bba70603fb0bd94a017b771672d
+SIZE (signalapp-ringrtc-v2.20.8_GH0.tar.gz) = 601626
+SHA256 (signalapp-webrtc-4896c_GH0.tar.gz) = 2eb34542bd7b01b3192bee9f1f8b5acc87cafe59080fcfd7e86bdcfd2f68b3bb
+SIZE (signalapp-webrtc-4896c_GH0.tar.gz) = 37532961
diff --git a/multimedia/ringrtc/files/extra-patch-no-mempcpy-nasm b/multimedia/ringrtc/files/extra-patch-no-mempcpy-nasm
new file mode 100644
index 000000000000..069a0c98317b
--- /dev/null
+++ b/multimedia/ringrtc/files/extra-patch-no-mempcpy-nasm
@@ -0,0 +1,11 @@
+--- ../../src/webrtc/src/third_party/nasm/config/config-linux.h.orig	2021-04-14 18:43:05 UTC
++++ ../../src/webrtc/src/third_party/nasm/config/config-linux.h
+@@ -336,7 +336,7 @@
+ #define HAVE_MEMORY_H 1
+ 
+ /* Define to 1 if you have the `mempcpy' function. */
+-#define HAVE_MEMPCPY 1
++/* #undef HAVE_MEMPCPY */
+ 
+ /* Define to 1 if you have a working `mmap' system call. */
+ #define HAVE_MMAP 1
diff --git a/multimedia/ringrtc/files/patch-boringssl b/multimedia/ringrtc/files/patch-boringssl
new file mode 100644
index 000000000000..6ce451be1f3b
--- /dev/null
+++ b/multimedia/ringrtc/files/patch-boringssl
@@ -0,0 +1,35 @@
+https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=259334
+
+--- ../../src/webrtc/src/third_party/boringssl/src/util/generate_build_files.py.orig	2022-05-04 15:47:04 UTC
++++ ../../src/webrtc/src/third_party/boringssl/src/util/generate_build_files.py
+@@ -447,7 +447,7 @@ if(NOT WIN32)
+ 
+ # pthread_rwlock_t requires a feature flag.
+ if(NOT WIN32)
+-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_XOPEN_SOURCE=700")
++  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ")
+ endif()
+ 
+ if(WIN32)
+--- ../../src/webrtc/src/third_party/boringssl/src/util/BUILD.toplevel.orig	2022-05-04 15:47:04 UTC
++++ ../../src/webrtc/src/third_party/boringssl/src/util/BUILD.toplevel
+@@ -95,7 +95,7 @@ linux_copts = posix_copts + [
+     # This is needed on Linux systems (at least) to get rwlock in pthread, but
+     # it should not be set on Apple platforms, where it instead disables APIs
+     # we use. See compat(5) and sys/cdefs.h.
+-    "-D_XOPEN_SOURCE=700",
++    "",
+ ]
+ 
+ boringssl_copts = select({
+--- ../../src/webrtc/src/third_party/boringssl/src/CMakeLists.txt.orig	2022-05-04 15:46:59 UTC
++++ ../../src/webrtc/src/third_party/boringssl/src/CMakeLists.txt
+@@ -262,7 +262,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ # and sys/cdefs.h. Reportedly, FreeBSD also breaks when this is set. See
+ # https://crbug.com/boringssl/471.
+ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_XOPEN_SOURCE=700")
++  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ")
+ endif()
+ 
+ if(FUZZ)
diff --git a/multimedia/ringrtc/files/patch-cargo-crates_neon-0.9.1_src_lib.rs b/multimedia/ringrtc/files/patch-cargo-crates_neon-0.9.1_src_lib.rs
new file mode 100644
index 000000000000..ae54dc506c73
--- /dev/null
+++ b/multimedia/ringrtc/files/patch-cargo-crates_neon-0.9.1_src_lib.rs
@@ -0,0 +1,10 @@
+--- cargo-crates/neon-0.9.1/src/lib.rs.orig	2021-03-15 17:51:55 UTC
++++ cargo-crates/neon-0.9.1/src/lib.rs
+@@ -104,6 +104,7 @@ macro_rules! register_module {
+     ($module:pat, $init:block) => {
+         // Mark this function as a global constructor (like C++).
+         #[allow(improper_ctypes)]
++        #[cfg_attr(target_os = "freebsd", link_section = ".ctors")]
+         #[cfg_attr(target_os = "linux", link_section = ".ctors")]
+         #[cfg_attr(target_os = "android", link_section = ".ctors")]
+         #[cfg_attr(target_os = "macos", link_section = "__DATA,__mod_init_func")]
diff --git a/multimedia/ringrtc/files/patch-src_rust_build.rs b/multimedia/ringrtc/files/patch-src_rust_build.rs
new file mode 100644
index 000000000000..716ac6b05baa
--- /dev/null
+++ b/multimedia/ringrtc/files/patch-src_rust_build.rs
@@ -0,0 +1,13 @@
+--- build.rs.orig	2021-03-15 17:47:59 UTC
++++ build.rs
+@@ -21,7 +21,9 @@ fn main() {
+             println!("cargo:rustc-link-search=native=../../src/webrtc/src/out/Release/obj/",);
+         }
+ 
+-        if cfg!(target_os = "macos") {
++        if cfg!(target_os = "freebsd") {
++            println!("cargo:rustc-link-lib=dylib=c++");
++        } else if cfg!(target_os = "macos") {
+             println!("cargo:rustc-link-lib=dylib=c++");
+             println!("cargo:rustc-link-lib=framework=Foundation");
+             println!("cargo:rustc-link-lib=framework=CoreAudio");
diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_BUILD.gn b/multimedia/ringrtc/files/patch-src_webrtc_src_BUILD.gn
new file mode 100644
index 000000000000..841b000a27ad
--- /dev/null
+++ b/multimedia/ringrtc/files/patch-src_webrtc_src_BUILD.gn
@@ -0,0 +1,23 @@
+--- ../../src/webrtc/src/BUILD.gn.orig	2021-03-15 15:09:17 UTC
++++ ../../src/webrtc/src/BUILD.gn
+@@ -188,6 +188,9 @@ config("common_inherited_config") {
+   if (is_linux || is_chromeos) {
+     defines += [ "WEBRTC_LINUX" ]
+   }
++  if (is_bsd) {
++    defines += [ "WEBRTC_BSD" ]
++  }
+   if (is_mac) {
+     defines += [ "WEBRTC_MAC" ]
+   }
+@@ -431,10 +434,6 @@ config("common_config") {
+       "/U_UNICODE",
+     ]
+   }
+-}
+-
+-config("common_objc") {
+-  frameworks = [ "Foundation.framework" ]
+ }
+ 
+ if (!build_with_chromium) {
diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_base_third__party_libevent_BUILD.gn b/multimedia/ringrtc/files/patch-src_webrtc_src_base_third__party_libevent_BUILD.gn
new file mode 100644
index 000000000000..dcfcc07ee16c
--- /dev/null
+++ b/multimedia/ringrtc/files/patch-src_webrtc_src_base_third__party_libevent_BUILD.gn
@@ -0,0 +1,16 @@
+--- ../../src/webrtc/src/base/third_party/libevent/BUILD.gn.orig	2021-03-15 17:07:00 UTC
++++ ../../src/webrtc/src/base/third_party/libevent/BUILD.gn
+@@ -43,6 +43,13 @@ static_library("libevent") {
+       "mac/event-config.h",
+     ]
+     include_dirs = [ "mac" ]
++  } else if (is_bsd) {
++    sources += [
++      "kqueue.c",
++      "freebsd/config.h",
++      "freebsd/event-config.h",
++    ]
++    include_dirs = [ "freebsd" ]
+   } else if (is_linux || is_chromeos) {
+     sources += [
+       "epoll.c",
diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_BUILD.gn b/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_BUILD.gn
new file mode 100644
index 000000000000..1b4166ee0725
--- /dev/null
+++ b/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_BUILD.gn
@@ -0,0 +1,30 @@
+--- ../../src/webrtc/src/build/config/BUILD.gn.orig	2021-05-26 12:26:11 UTC
++++ ../../src/webrtc/src/build/config/BUILD.gn
+@@ -128,7 +128,7 @@ config("debug") {
+       # builds, and we have to tell it to turn it off.
+       defines += [ "_HAS_ITERATOR_DEBUGGING=0" ]
+     }
+-  } else if ((is_linux || is_chromeos) && current_cpu == "x64" &&
++  } else if ((is_linux || is_chromeos || is_bsd) && current_cpu == "x64" &&
+              enable_iterator_debugging) {
+     # Enable libstdc++ debugging facilities to help catch problems early, see
+     # http://crbug.com/65151 .
+@@ -227,9 +227,7 @@ config("default_libs") {
+     ]
+   } else if (is_linux || is_chromeos) {
+     libs = [
+-      "dl",
+       "pthread",
+-      "rt",
+     ]
+   }
+ }
+@@ -308,7 +306,7 @@ config("executable_config") {
+       "//build/config/ios:ios_dynamic_flags",
+       "//build/config/ios:ios_executable_flags",
+     ]
+-  } else if (is_linux || is_chromeos || is_android || current_os == "aix") {
++  } else if (is_linux || is_bsd || is_chromeos || is_android || current_os == "aix") {
+     configs += [ "//build/config/gcc:executable_config" ]
+     if (is_chromecast) {
+       configs += [ "//build/config/chromecast:executable_config" ]
diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_BUILDCONFIG.gn b/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_BUILDCONFIG.gn
new file mode 100644
index 000000000000..2c9220f9e4a0
--- /dev/null
+++ b/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_BUILDCONFIG.gn
@@ -0,0 +1,44 @@
+--- ../../src/webrtc/src/build/config/BUILDCONFIG.gn.orig	2021-11-15 18:52:18 UTC
++++ ../../src/webrtc/src/build/config/BUILDCONFIG.gn
+@@ -136,7 +136,7 @@ declare_args() {
+   is_official_build = false
+ 
+   # Set to true when compiling with the Clang compiler.
+-  is_clang = current_os != "linux" ||
++  is_clang = current_os != "linux" || current_os == "freebsd" ||
+              (current_cpu != "s390x" && current_cpu != "s390" &&
+               current_cpu != "ppc64" && current_cpu != "ppc" &&
+               current_cpu != "mips" && current_cpu != "mips64" &&
+@@ -189,8 +189,8 @@ if (host_toolchain == "") {
+   # TODO(dpranke): Add some sort of assert here that verifies that
+   # no toolchain omitted host_toolchain from its toolchain_args().
+ 
+-  if (host_os == "linux") {
+-    if (target_os != "linux") {
++  if (host_os == "linux" || host_os == "freebsd") {
++    if (target_os != "linux" && target_os != "freebsd") {
+       host_toolchain = "//build/toolchain/linux:clang_$host_cpu"
+     } else if (is_clang) {
+       host_toolchain = "//build/toolchain/linux:clang_$host_cpu"
+@@ -229,7 +229,7 @@ if (target_os == "android") {
+   assert(host_os == "linux" || host_os == "mac",
+          "Android builds are only supported on Linux and Mac hosts.")
+   _default_toolchain = "//build/toolchain/android:android_clang_$target_cpu"
+-} else if (target_os == "chromeos" || target_os == "linux") {
++} else if (target_os == "chromeos" || target_os == "linux" || target_os == "freebsd") {
+   # See comments in build/toolchain/cros/BUILD.gn about board compiles.
+   if (is_clang) {
+     _default_toolchain = "//build/toolchain/linux:clang_$target_cpu"
+@@ -296,10 +296,11 @@ is_android = current_os == "android"
+ is_chromeos = current_os == "chromeos"
+ is_fuchsia = current_os == "fuchsia"
+ is_ios = current_os == "ios"
+-is_linux = current_os == "linux"
++is_linux = current_os == "linux" || current_os == "freebsd"
+ is_mac = current_os == "mac"
+ is_nacl = current_os == "nacl"
+ is_win = current_os == "win" || current_os == "winuwp"
++is_bsd = current_os == "freebsd"
+ 
+ is_apple = is_ios || is_mac
+ is_posix = !is_win && !is_fuchsia
diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_compiler_BUILD.gn b/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_compiler_BUILD.gn
new file mode 100644
index 000000000000..dc2d466a60da
--- /dev/null
+++ b/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_compiler_BUILD.gn
@@ -0,0 +1,110 @@
+--- ../../src/webrtc/src/build/config/compiler/BUILD.gn.orig	2022-02-16 12:34:12 UTC
++++ ../../src/webrtc/src/build/config/compiler/BUILD.gn
+@@ -140,7 +140,7 @@ declare_args() {
+   #
+   # TODO(crbug.com/1131993): Enabling this when 'is_android' is true breaks
+   # content_shell_test_apk on both ARM and x86.
+-  init_stack_vars = !is_android
++  init_stack_vars = !is_android && !is_bsd
+ 
+   # This argument is to control whether enabling text section splitting in the
+   # final binary. When enabled, the separated text sections with prefix
+@@ -356,7 +356,7 @@ config("compiler") {
+     }
+ 
+     # Linker warnings.
+-    if (fatal_linker_warnings && !is_apple && current_os != "aix" &&
++    if (fatal_linker_warnings && !is_bsd &&!is_apple && current_os != "aix" &&
+         current_os != "zos") {
+       ldflags += [ "-Wl,--fatal-warnings" ]
+     }
+@@ -533,7 +533,7 @@ config("compiler") {
+     ldflags += [ "-Wl,-z,keep-text-section-prefix" ]
+   }
+ 
+-  if (is_clang && !is_nacl && current_os != "zos") {
++  if (is_clang && !is_bsd && !is_nacl && current_os != "zos") {
+     cflags += [ "-fcrash-diagnostics-dir=" + clang_diagnostic_dir ]
+ 
+     # TODO(hans): Remove this once Clang generates better optimized debug info
+@@ -930,7 +930,7 @@ config("compiler_cpu_abi") {
+         cflags += [ "-mtune=$arm_tune" ]
+       }
+     } else if (current_cpu == "arm64") {
+-      if (is_clang && !is_android && !is_nacl && !is_fuchsia) {
++      if (is_clang && !is_android && !is_nacl && !is_fuchsia && !is_bsd) {
+         cflags += [ "--target=aarch64-linux-gnu" ]
+         ldflags += [ "--target=aarch64-linux-gnu" ]
+       }
+@@ -1251,7 +1251,7 @@ config("compiler_deterministic") {
+     # different build directory like "out/feature_a" and "out/feature_b" if
+     # we build same files with same compile flag.
+     # Other paths are already given in relative, no need to normalize them.
+-    if (is_nacl) {
++    if (is_nacl || is_bsd) {
+       # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here.
+       cflags += [
+         "-Xclang",
*** 1011 LINES SKIPPED ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202206231138.25NBcLFM068586>