diff options
| author | Mikael Urankar <mikael@FreeBSD.org> | 2022-06-23 11:21:16 +0000 |
|---|---|---|
| committer | Mikael Urankar <mikael@FreeBSD.org> | 2022-06-23 11:38:16 +0000 |
| commit | 9aad8301d5f7aadc3240a2aa4905358b6a40eb82 (patch) | |
| tree | 3ddd2c9b5c6d569a00836eec3cf44316e25fe4fe | |
| parent | 3e8236085199a7aa24fe60fadf8a9777612b54d2 (diff) | |
48 files changed, 1638 insertions, 0 deletions
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", +@@ -1264,7 +1264,7 @@ config("compiler_deterministic") { + # and -fcoverage-compilation-dir=. + cflags += [ "-ffile-compilation-dir=." ] + } +- if (!is_win) { ++ if (!is_win && !is_bsd) { + # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167) + asmflags = [ "-Wa,-fdebug-compilation-dir,." ] + } +@@ -1302,7 +1302,7 @@ config("clang_revision") { + } + + config("clang_revision") { +- if (is_clang && clang_base_path == default_clang_base_path) { ++ if (is_clang && !is_bsd && clang_base_path == default_clang_base_path) { + update_args = [ + "--print-revision", + "--verify-version=$clang_version", +@@ -1541,7 +1541,7 @@ config("default_warnings") { + "-Wno-ignored-pragma-optimize", + ] + +- if (!is_nacl) { ++ if (!is_nacl && !is_bsd) { + # TODO(https://crbug.com/1300731) Clean up and enable. + cflags += [ "-Wno-unqualified-std-cast-call" ] + } +@@ -1854,7 +1854,7 @@ config("thin_archive") { + # archives. + # TODO(crbug.com/1221615): Enable on is_apple if use_lld once that no longer + # confuses lldb. +- if ((is_posix && !is_nacl && !is_apple) || is_fuchsia) { ++ if ((is_posix && !is_nacl && !is_apple && !is_bsd) || is_fuchsia) { + arflags = [ "-T" ] + } else if (is_win && use_lld) { + arflags = [ "/llvmlibthin" ] +@@ -2355,7 +2355,7 @@ config("symbols") { + # flag, so we can use use -g1 for pnacl and nacl-clang compiles. + # gcc nacl is is_nacl && !is_clang, pnacl and nacl-clang are && is_clang. + if ((!is_nacl || is_clang) && current_os != "zos") { +- cflags += [ "-g2" ] ++ cflags += [ "-g0" ] + } + + if (!is_nacl && is_clang && !is_tsan && !is_asan && +@@ -2394,7 +2394,7 @@ config("symbols") { + # DWARF info may be corrupt; offsets in a range list entry are in different + # sections" there. Maybe just a bug in nacl_switch_32.S. + _enable_gdb_index = +- symbol_level == 2 && !is_apple && !is_nacl && current_cpu != "x86" && ++ symbol_level == 2 && !is_bsd && !is_apple && !is_nacl && current_cpu != "x86" && + current_os != "zos" && (use_gold || use_lld) && + # Disable on non-fission 32-bit Android because it pushes + # libcomponents_unittests over the 4gb size limit. +@@ -2413,7 +2413,7 @@ config("symbols") { + } + + if (is_clang && (!is_nacl || is_nacl_saigo) && current_os != "zos") { +- if (is_apple) { ++ if (is_apple || is_bsd) { + # TODO(https://crbug.com/1050118): Investigate missing debug info on mac. + # Make sure we don't use constructor homing on mac. + cflags += [ diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_compiler_compiler.gni b/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_compiler_compiler.gni new file mode 100644 index 000000000000..e002a799ffb3 --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_compiler_compiler.gni @@ -0,0 +1,11 @@ +--- ../../src/webrtc/src/build/config/compiler/compiler.gni.orig 2021-11-15 18:52:18 UTC ++++ ../../src/webrtc/src/build/config/compiler/compiler.gni +@@ -219,7 +219,7 @@ declare_args() { + + declare_args() { + # Whether to use the gold linker from binutils instead of lld or bfd. +- use_gold = !use_lld && !(is_chromecast && is_linux && ++ use_gold = !use_lld && !is_bsd && !(is_chromecast && is_linux && + (current_cpu == "arm" || current_cpu == "mipsel")) && + (((is_linux || is_chromeos_lacros) && + (current_cpu == "x64" || current_cpu == "x86" || diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_features.gni b/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_features.gni new file mode 100644 index 000000000000..b87b4940126d --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_features.gni @@ -0,0 +1,11 @@ +--- ../../src/webrtc/src/build/config/features.gni.orig 2020-09-19 19:50:44 UTC ++++ ../../src/webrtc/src/build/config/features.gni +@@ -26,7 +26,7 @@ declare_args() { + proprietary_codecs = is_chrome_branded || is_chromecast + + # libudev usage. This currently only affects the content layer. +- use_udev = (is_linux || is_chromeos) && !is_chromecast ++ use_udev = (is_linux || is_chromeos) && !is_chromecast && !is_bsd + + use_dbus = (is_linux || is_chromeos) && !is_chromecast + diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_freetype_freetype.gni b/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_freetype_freetype.gni new file mode 100644 index 000000000000..413823ab125f --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_freetype_freetype.gni @@ -0,0 +1,9 @@ +--- ../../src/webrtc/src/build/config/freetype/freetype.gni.orig 2019-03-18 08:59:45 UTC ++++ ../../src/webrtc/src/build/config/freetype/freetype.gni +@@ -10,5 +10,5 @@ declare_args() { + # than version 2.7.1 and have color bitmap support compiled in. WARNING: + # System FreeType configurations other than as described WILL INTRODUCE TEXT + # RENDERING AND SECURITY REGRESSIONS. +- use_system_freetype = false ++ use_system_freetype = true + } diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_linux_BUILD.gn b/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_linux_BUILD.gn new file mode 100644 index 000000000000..491318b9893b --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_linux_BUILD.gn @@ -0,0 +1,11 @@ +--- ../../src/webrtc/src/build/config/linux/BUILD.gn.orig 2021-10-13 07:49:03 UTC ++++ ../../src/webrtc/src/build/config/linux/BUILD.gn +@@ -39,7 +39,7 @@ config("runtime_library") { + + if ((!(is_chromeos_ash || is_chromeos_lacros) || + default_toolchain != "//build/toolchain/cros:target") && +- (!use_custom_libcxx || current_cpu == "mipsel")) { ++ (!use_custom_libcxx || current_cpu == "mipsel") && !is_bsd) { + libs = [ "atomic" ] + } + } diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_linux_pkg-config.py b/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_linux_pkg-config.py new file mode 100644 index 000000000000..71f94e8ca65d --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_linux_pkg-config.py @@ -0,0 +1,26 @@ +--- ../../src/webrtc/src/build/config/linux/pkg-config.py.orig 2019-07-24 18:58:02 UTC ++++ ../../src/webrtc/src/build/config/linux/pkg-config.py +@@ -59,8 +59,12 @@ def SetConfigPath(options): + print("You must specify an architecture via -a if using a sysroot.") + sys.exit(1) + +- libdir = sysroot + '/usr/' + options.system_libdir + '/pkgconfig' +- libdir += ':' + sysroot + '/usr/share/pkgconfig' ++ if "linux" in sys.platform: ++ libdir = sysroot + '/libdata/' + options.system_libdir + '/pkgconfig' ++ libdir += ':' + sysroot + '/usr/share/pkgconfig' ++ elif "bsd" in sys.platform: ++ libdir = sysroot + '/libdata/pkgconfig' ++ libdir += ':' + '/usr/libdata/pkgconfig' + os.environ['PKG_CONFIG_LIBDIR'] = libdir + return libdir + +@@ -109,7 +113,7 @@ def main(): + # If this is run on non-Linux platforms, just return nothing and indicate + # success. This allows us to "kind of emulate" a Linux build from other + # platforms. +- if "linux" not in sys.platform: ++ if "bsd" not in sys.platform: + print("[[],[],[],[],[]]") + return 0 + diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_sysroot.gni b/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_sysroot.gni new file mode 100644 index 000000000000..d99908dcc440 --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_build_config_sysroot.gni @@ -0,0 +1,14 @@ +--- ../../src/webrtc/src/build/config/sysroot.gni.orig 2020-05-13 18:39:36 UTC ++++ ../../src/webrtc/src/build/config/sysroot.gni +@@ -21,9 +21,9 @@ declare_args() { + + # Controls default is_linux sysroot. If set to true, and sysroot + # is empty, default sysroot is calculated. +- use_sysroot = current_cpu == "x86" || current_cpu == "x64" || ++ use_sysroot = !is_bsd && (current_cpu == "x86" || current_cpu == "x64" || + current_cpu == "arm" || current_cpu == "arm64" || +- current_cpu == "mipsel" || current_cpu == "mips64el" ++ current_cpu == "mipsel" || current_cpu == "mips64el") + } + + if (sysroot == "") { diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_build_detect__host__arch.py b/multimedia/ringrtc/files/patch-src_webrtc_src_build_detect__host__arch.py new file mode 100644 index 000000000000..de29ca56ea78 --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_build_detect__host__arch.py @@ -0,0 +1,11 @@ +--- ../../src/webrtc/src/build/detect_host_arch.py.orig 2019-07-24 18:58:02 UTC ++++ ../../src/webrtc/src/build/detect_host_arch.py +@@ -21,6 +21,8 @@ def HostArch(): + host_arch = 'ia32' + elif host_arch in ['x86_64', 'amd64']: + host_arch = 'x64' ++ elif host_arch.startswith('arm64'): ++ host_arch = 'arm64' + elif host_arch.startswith('arm'): + host_arch = 'arm' + elif host_arch.startswith('aarch64'): diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_build_gn__run__binary.py b/multimedia/ringrtc/files/patch-src_webrtc_src_build_gn__run__binary.py new file mode 100644 index 000000000000..595c77c9eec6 --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_build_gn__run__binary.py @@ -0,0 +1,11 @@ +--- ../../src/webrtc/src/build/gn_run_binary.py.orig 2019-07-24 18:58:02 UTC ++++ ../../src/webrtc/src/build/gn_run_binary.py +@@ -24,7 +24,7 @@ if not os.path.isabs(path): + # The rest of the arguments are passed directly to the executable. + args = [path] + sys.argv[2:] + +-ret = subprocess.call(args) ++ret = subprocess.call(args, env={"CHROME_EXE_PATH":"${WRKSRC}/out/Release/chrome"}) + if ret != 0: + if ret <= -100: + # Windows error codes such as 0xC0000005 and 0xC0000409 are much easier to diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_build_linux_chrome.map b/multimedia/ringrtc/files/patch-src_webrtc_src_build_linux_chrome.map new file mode 100644 index 000000000000..c8d92e94a5bb --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_build_linux_chrome.map @@ -0,0 +1,29 @@ +--- ../../src/webrtc/src/build/linux/chrome.map.orig 2021-05-01 21:15:31 UTC ++++ ../../src/webrtc/src/build/linux/chrome.map +@@ -1,4 +1,7 @@ + { ++local: ++ *; ++ + global: + __bss_start; + __data_start; +@@ -20,6 +23,10 @@ global: + # Program entry point. + _start; + ++ # FreeBSD specific variables. ++ __progname; ++ environ; ++ + # Memory allocation symbols. We want chrome and any libraries to + # share the same heap, so it is correct to export these symbols. + calloc; +@@ -83,7 +90,4 @@ global: + localtime_r; + + v8dbg_*; +- +-local: +- *; + }; diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_build_linux_libpci_BUILD.gn b/multimedia/ringrtc/files/patch-src_webrtc_src_build_linux_libpci_BUILD.gn new file mode 100644 index 000000000000..9ece73e22ebc --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_build_linux_libpci_BUILD.gn @@ -0,0 +1,53 @@ +--- ../../src/webrtc/src/build/linux/libpci/BUILD.gn.orig 2019-03-11 22:00:52 UTC ++++ ../../src/webrtc/src/build/linux/libpci/BUILD.gn +@@ -3,20 +3,36 @@ + # found in the LICENSE file. + + import("//tools/generate_library_loader/generate_library_loader.gni") ++import("//build/config/linux/pkg_config.gni") + +-# This generates a target named "libpci". +-generate_library_loader("libpci") { +- name = "LibPciLoader" +- output_h = "libpci.h" +- output_cc = "libpci_loader.cc" +- header = "<pci/pci.h>" ++declare_args() { ++ use_system_libpci = is_bsd ++} + +- functions = [ +- "pci_alloc", +- "pci_init", +- "pci_cleanup", +- "pci_scan_bus", +- "pci_fill_info", +- "pci_lookup_name", +- ] ++if (use_system_libpci) { ++ pkg_config("system_libpci") { ++ packages = [ "libpci" ] ++ } ++ ++ source_set("libpci") { ++ public_configs = [ ":system_libpci" ] ++ } ++ ++} else { ++ # This generates a target named "libpci". ++ generate_library_loader("libpci") { ++ name = "LibPciLoader" ++ output_h = "libpci.h" ++ output_cc = "libpci_loader.cc" ++ header = "<pci/pci.h>" ++ ++ functions = [ ++ "pci_alloc", ++ "pci_init", ++ "pci_cleanup", ++ "pci_scan_bus", ++ "pci_fill_info", ++ "pci_lookup_name", ++ ] ++ } + } diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_build_linux_unbundle_libusb.gn b/multimedia/ringrtc/files/patch-src_webrtc_src_build_linux_unbundle_libusb.gn new file mode 100644 index 000000000000..3885fd4ebc70 --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_build_linux_unbundle_libusb.gn @@ -0,0 +1,27 @@ +--- ../../src/webrtc/src/build/linux/unbundle/libusb.gn.orig 2019-03-17 01:47:13 UTC ++++ ../../src/webrtc/src/build/linux/unbundle/libusb.gn +@@ -0,0 +1,24 @@ ++# Copyright 2016 The Chromium Authors. All rights reserved. ++# Use of this source code is governed by a BSD-style license that can be ++# found in the LICENSE file. ++ ++import("//build/config/linux/pkg_config.gni") ++import("//build/shim_headers.gni") ++ ++pkg_config("system_libusb") { ++ packages = [ "libusb-1.0" ] ++} ++ ++shim_headers("libusb_shim") { ++ root_path = "src/libusb" ++ headers = [ ++ "libusb.h", ++ ] ++} ++ ++source_set("libusb") { ++ deps = [ ++ ":libusb_shim", ++ ] ++ public_configs = [ ":system_libusb" ] ++} diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_build_linux_unbundle_replace__gn__files.py b/multimedia/ringrtc/files/patch-src_webrtc_src_build_linux_unbundle_replace__gn__files.py new file mode 100644 index 000000000000..0c49536a7725 --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_build_linux_unbundle_replace__gn__files.py @@ -0,0 +1,10 @@ +--- ../../src/webrtc/src/build/linux/unbundle/replace_gn_files.py.orig 2021-11-15 18:52:18 UTC ++++ ../../src/webrtc/src/build/linux/unbundle/replace_gn_files.py +@@ -25,6 +25,7 @@ REPLACEMENTS = { + 'libevent': 'base/third_party/libevent/BUILD.gn', + 'libjpeg': 'third_party/libjpeg.gni', + 'libpng': 'third_party/libpng/BUILD.gn', ++ 'libusb': 'third_party/libusb/BUILD.gn', + 'libvpx': 'third_party/libvpx/BUILD.gn', + 'libwebp': 'third_party/libwebp/BUILD.gn', + 'libxml': 'third_party/libxml/BUILD.gn', diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_build_toolchain_gcc__toolchain.gni b/multimedia/ringrtc/files/patch-src_webrtc_src_build_toolchain_gcc__toolchain.gni new file mode 100644 index 000000000000..ac1e2e8ca0ef --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_build_toolchain_gcc__toolchain.gni @@ -0,0 +1,44 @@ +--- ../../src/webrtc/src/build/toolchain/gcc_toolchain.gni.orig 2022-02-16 12:34:12 UTC ++++ ../../src/webrtc/src/build/toolchain/gcc_toolchain.gni +@@ -53,6 +53,11 @@ if (enable_resource_allowlist_generation) { + "enable_resource_allowlist_generation=true does not work for target_os=$target_os") + } + ++declare_args() { ++ extra_cxxflags = "" ++ extra_ldflags = "" ++} ++ + # This template defines a toolchain for something that works like gcc + # (including clang). + # +@@ -780,13 +785,22 @@ template("clang_toolchain") { + # use_gold too. + template("clang_toolchain") { + gcc_toolchain(target_name) { +- prefix = rebase_path("$clang_base_path/bin", root_build_dir) +- cc = "${prefix}/clang" +- cxx = "${prefix}/clang++" +- ld = cxx +- readelf = "${prefix}/llvm-readelf" +- ar = "${prefix}/llvm-ar" +- nm = "${prefix}/llvm-nm" ++ if (is_bsd) { ++ prefix = "%%LOCALBASE%%/bin" ++ cc = "cc" ++ cxx = "c++" ++ ld = cxx ++ ar = "llvm-ar" ++ nm = "${prefix}/nm" ++ } else { ++ prefix = rebase_path("$clang_base_path/bin", root_build_dir) ++ cc = "$prefix/clang" ++ cxx = "$prefix/clang++" ++ ld = cxx ++ readelf = "${prefix}/readelf" ++ ar = "${prefix}/llvm-ar" ++ nm = "${prefix}/llvm-nm" ++ } + + forward_variables_from(invoker, + [ diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_build_toolchain_get__concurrent__links.py b/multimedia/ringrtc/files/patch-src_webrtc_src_build_toolchain_get__concurrent__links.py new file mode 100644 index 000000000000..7fcb1e54e0bf --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_build_toolchain_get__concurrent__links.py @@ -0,0 +1,17 @@ +--- ../../src/webrtc/src/build/toolchain/get_concurrent_links.py.orig 2021-05-01 21:15:31 UTC ++++ ../../src/webrtc/src/build/toolchain/get_concurrent_links.py +@@ -53,6 +53,14 @@ def _GetTotalMemoryInBytes(): + return int(subprocess.check_output(['sysctl', '-n', 'hw.memsize'])) + except Exception: + return 0 ++ elif sys.platform.startswith('freebsd'): ++ try: ++ avail_bytes = int(subprocess.check_output(['sysctl', '-n', 'hw.physmem'])) ++ # With -fuse-lld it doesn't take a lot of ram, feel free to change that ++ # 1 * ... to needed amount ++ return max(1, avail_bytes / (1 * (2 ** 30))) # total / 4GB ++ except Exception: ++ return 1 + # TODO(scottmg): Implement this for other platforms. + return 0 + diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_buildtools_third__party_libc++_BUILD.gn b/multimedia/ringrtc/files/patch-src_webrtc_src_buildtools_third__party_libc++_BUILD.gn new file mode 100644 index 000000000000..320feb4a299d --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_buildtools_third__party_libc++_BUILD.gn @@ -0,0 +1,10 @@ +--- ../../src/webrtc/src/buildtools/third_party/libc++/BUILD.gn.orig 2021-09-19 10:01:13 UTC ++++ ../../src/webrtc/src/buildtools/third_party/libc++/BUILD.gn +@@ -21,6 +21,7 @@ config("config") { + # upstream libc++ requires C++20 so we have to make an exception here. + # No other target should override the default -std= flag. + "-std:c++20", ++ "-I%%LOCALBASE%%/include", + ] + } else { + cflags += [ "-fPIC" ] diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_gn b/multimedia/ringrtc/files/patch-src_webrtc_src_gn new file mode 100644 index 000000000000..71ecef1dc7af --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_gn @@ -0,0 +1,11 @@ +--- ../../src/webrtc/src/.gn.orig 2022-02-18 09:45:12 UTC ++++ ../../src/webrtc/src/.gn +@@ -24,7 +24,7 @@ secondary_source = "//build/secondary/" + # matching these patterns (see "gn help label_pattern" for format) will not have + # their includes checked for proper dependencies when you run either + # "gn check" or "gn gen --check". +-no_check_targets = [ "//third_party/icu/*" ] ++#no_check_targets = [ "//third_party/icu/*" ] + + # These are the list of GN files that run exec_script. This whitelist exists + # to force additional review for new uses of exec_script, which is strongly diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_modules_rtp__rtcp_source_forward__error__correction.cc b/multimedia/ringrtc/files/patch-src_webrtc_src_modules_rtp__rtcp_source_forward__error__correction.cc new file mode 100644 index 000000000000..b8b3687bf79c --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_modules_rtp__rtcp_source_forward__error__correction.cc @@ -0,0 +1,10 @@ +--- ../../src/webrtc/src/modules/rtp_rtcp/source/forward_error_correction.cc.orig 2021-01-28 23:16:17 UTC ++++ ../../src/webrtc/src/modules/rtp_rtcp/source/forward_error_correction.cc +@@ -13,6 +13,7 @@ + #include <string.h> + + #include <algorithm> ++#include <cstdlib> + #include <utility> + + #include "absl/algorithm/container.h" diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_modules_video__capture_BUILD.gn b/multimedia/ringrtc/files/patch-src_webrtc_src_modules_video__capture_BUILD.gn new file mode 100644 index 000000000000..41d4bffa768a --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_modules_video__capture_BUILD.gn @@ -0,0 +1,11 @@ +--- ../../src/webrtc/src/modules/video_capture/BUILD.gn.orig 2021-01-28 23:16:17 UTC ++++ ../../src/webrtc/src/modules/video_capture/BUILD.gn +@@ -53,7 +53,7 @@ if (!build_with_chromium) { + "../../system_wrappers", + ] + +- if (is_linux || is_chromeos) { ++ if ((is_linux || is_chromeos) && !is_bsd) { + sources = [ + "linux/device_info_linux.cc", + "linux/device_info_linux.h", diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_byte__order.h b/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_byte__order.h new file mode 100644 index 000000000000..09a45e0b912e --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_byte__order.h @@ -0,0 +1,11 @@ +--- ../../src/webrtc/src/rtc_base/byte_order.h.orig 2021-01-28 23:16:17 UTC ++++ ../../src/webrtc/src/rtc_base/byte_order.h +@@ -89,7 +89,7 @@ + #endif // defined(WEBRTC_ARCH_LITTLE_ENDIAN) + + #elif defined(WEBRTC_POSIX) +-#include <endian.h> ++#include <sys/endian.h> + #else + #error "Missing byte order functions for this arch." + #endif // defined(WEBRTC_MAC) diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_ifaddrs__converter.h b/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_ifaddrs__converter.h new file mode 100644 index 000000000000..07ff57b51b32 --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_ifaddrs__converter.h @@ -0,0 +1,11 @@ +--- ../../src/webrtc/src/rtc_base/ifaddrs_converter.h.orig 2021-01-28 23:16:17 UTC ++++ ../../src/webrtc/src/rtc_base/ifaddrs_converter.h +@@ -14,6 +14,8 @@ + #if defined(WEBRTC_ANDROID) + #include "rtc_base/ifaddrs_android.h" + #else ++#include <sys/types.h> ++#include <sys/socket.h> + #include <ifaddrs.h> + #endif // WEBRTC_ANDROID + diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_ip__address.cc b/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_ip__address.cc new file mode 100644 index 000000000000..188ad944e42f --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_ip__address.cc @@ -0,0 +1,12 @@ +--- ../../src/webrtc/src/rtc_base/ip_address.cc.orig 2021-01-28 23:16:17 UTC ++++ ../../src/webrtc/src/rtc_base/ip_address.cc +@@ -11,6 +11,9 @@ + #if defined(WEBRTC_POSIX) + #include <netinet/in.h> + #include <sys/socket.h> ++#if defined(WEBRTC_BSD) ++#include <sys/types.h> ++#endif + + #include "absl/strings/string_view.h" + #ifdef OPENBSD diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_ip__address.h b/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_ip__address.h new file mode 100644 index 000000000000..185f48a7fe05 --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_ip__address.h @@ -0,0 +1,13 @@ +--- ../../src/webrtc/src/rtc_base/ip_address.h.orig 2021-01-28 23:16:17 UTC ++++ ../../src/webrtc/src/rtc_base/ip_address.h +@@ -17,6 +17,10 @@ + #include <netinet/in.h> + #include <sys/socket.h> + #endif ++#if defined(WEBRTC_BSD) ++#include <sys/types.h> ++#include <sys/socket.h> ++#endif + #if defined(WEBRTC_WIN) + #include <winsock2.h> + #include <ws2tcpip.h> diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_network.cc b/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_network.cc new file mode 100644 index 000000000000..842e41bd7f37 --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_network.cc @@ -0,0 +1,15 @@ +--- ../../src/webrtc/src/rtc_base/network.cc.orig 2021-01-28 23:16:17 UTC ++++ ../../src/webrtc/src/rtc_base/network.cc +@@ -244,7 +244,12 @@ AdapterType GetAdapterTypeFromName(const char* network + } + #endif + ++#if defined(WEBRTC_BSD) ++ // Treat all other network interface names as ethernet on BSD ++ return ADAPTER_TYPE_ETHERNET; ++#else + return ADAPTER_TYPE_UNKNOWN; ++#endif + } + + NetworkManager::NetworkManager() {} diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_network.h b/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_network.h new file mode 100644 index 000000000000..03771162bfcc --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_network.h @@ -0,0 +1,13 @@ +--- ../../src/webrtc/src/rtc_base/network.h.orig 2021-01-28 23:16:17 UTC ++++ ../../src/webrtc/src/rtc_base/network.h +@@ -26,6 +26,10 @@ + #include "rtc_base/system/rtc_export.h" + #include "rtc_base/third_party/sigslot/sigslot.h" + ++#if defined(WEBRTC_BSD) ++#include <sys/types.h> ++#endif ++ + #if defined(WEBRTC_POSIX) + struct ifaddrs; + #endif // defined(WEBRTC_POSIX) diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_physical__socket__server.cc b/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_physical__socket__server.cc new file mode 100644 index 000000000000..a0148e4a21e7 --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_physical__socket__server.cc @@ -0,0 +1,47 @@ +--- ../../src/webrtc/src/rtc_base/physical_socket_server.cc.orig 2021-01-28 23:16:17 UTC ++++ ../../src/webrtc/src/rtc_base/physical_socket_server.cc +@@ -50,7 +50,7 @@ + #include "rtc_base/null_socket_server.h" + #include "rtc_base/time_utils.h" + +-#if defined(WEBRTC_LINUX) ++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD) + #include <linux/sockios.h> + #endif + +@@ -69,7 +69,7 @@ typedef void* SockOptArg; + + #endif // WEBRTC_POSIX + +-#if defined(WEBRTC_POSIX) && !defined(WEBRTC_MAC) && !defined(__native_client__) ++#if defined(WEBRTC_POSIX) && !defined(WEBRTC_MAC) && !defined(WEBRTC_BSD) && !defined(__native_client__) + + int64_t GetSocketRecvTimestamp(int socket) { + struct timeval tv_ioctl; +@@ -291,7 +291,7 @@ int PhysicalSocket::GetOption(Option opt, int* value) + return -1; + } + if (opt == OPT_DONTFRAGMENT) { +-#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) ++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) && !defined(WEBRTC_BSD) + *value = (*value != IP_PMTUDISC_DONT) ? 1 : 0; + #endif + } else if (opt == OPT_DSCP) { +@@ -309,7 +309,7 @@ int PhysicalSocket::SetOption(Option opt, int value) { + if (TranslateOption(opt, &slevel, &sopt) == -1) + return -1; + if (opt == OPT_DONTFRAGMENT) { +-#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) ++#if defined(WEBRTC_LINUX) && !defined(WEBRTC_ANDROID) && !defined(WEBRTC_BSD) + value = (value) ? IP_PMTUDISC_DO : IP_PMTUDISC_DONT; + #endif + } else if (opt == OPT_DSCP) { +@@ -550,7 +550,7 @@ int PhysicalSocket::TranslateOption(Option opt, int* s + *slevel = IPPROTO_IP; + *sopt = IP_DONTFRAGMENT; + break; +-#elif defined(WEBRTC_MAC) || defined(BSD) || defined(__native_client__) ++#elif defined(WEBRTC_MAC) || defined(WEBRTC_BSD) || defined(__native_client__) + RTC_LOG(LS_WARNING) << "Socket::OPT_DONTFRAGMENT not supported."; + return -1; + #elif defined(WEBRTC_POSIX) diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_physical__socket__server.h b/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_physical__socket__server.h new file mode 100644 index 000000000000..a6e2186eaa81 --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_physical__socket__server.h @@ -0,0 +1,11 @@ +--- ../../src/webrtc/src/rtc_base/physical_socket_server.h.orig 2021-01-28 23:16:17 UTC ++++ ../../src/webrtc/src/rtc_base/physical_socket_server.h +@@ -11,7 +11,7 @@ + #ifndef RTC_BASE_PHYSICAL_SOCKET_SERVER_H_ + #define RTC_BASE_PHYSICAL_SOCKET_SERVER_H_ + +-#if defined(WEBRTC_POSIX) && defined(WEBRTC_LINUX) ++#if defined(WEBRTC_POSIX) && defined(WEBRTC_LINUX) && !defined(WEBRTC_BSD) + #include <sys/epoll.h> + #define WEBRTC_USE_EPOLL 1 + #endif diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_platform__thread__types.cc b/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_platform__thread__types.cc new file mode 100644 index 000000000000..20380da326db --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_platform__thread__types.cc @@ -0,0 +1,39 @@ +--- ../../src/webrtc/src/rtc_base/platform_thread_types.cc.orig 2021-01-28 23:16:17 UTC ++++ ../../src/webrtc/src/rtc_base/platform_thread_types.cc +@@ -11,7 +11,11 @@ + #include "rtc_base/platform_thread_types.h" + + #if defined(WEBRTC_LINUX) ++#if !defined(__FreeBSD__) + #include <sys/prctl.h> ++#else ++#include <pthread_np.h> ++#endif + #include <sys/syscall.h> + #endif + +@@ -37,6 +41,8 @@ PlatformThreadId CurrentThreadId() { + return gettid(); + #elif defined(WEBRTC_FUCHSIA) + return zx_thread_self(); ++#elif defined(__FreeBSD__) ++ return pthread_getthreadid_np(); + #elif defined(WEBRTC_LINUX) + return syscall(__NR_gettid); + #elif defined(__EMSCRIPTEN__) +@@ -67,6 +73,7 @@ bool IsThreadRefEqual(const PlatformThreadRef& a, cons + } + + void SetCurrentThreadName(const char* name) { ++#if !defined(__FreeBSD__) + #if defined(WEBRTC_WIN) + // The SetThreadDescription API works even if no debugger is attached. + // The names set with this API also show up in ETW traces. Very handy. +@@ -109,6 +116,7 @@ void SetCurrentThreadName(const char* name) { + prctl(PR_SET_NAME, reinterpret_cast<unsigned long>(name)); // NOLINT + #elif defined(WEBRTC_MAC) || defined(WEBRTC_IOS) + pthread_setname_np(name); ++#endif + #endif + } + diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_third__party_sigslot_sigslot.h b/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_third__party_sigslot_sigslot.h new file mode 100644 index 000000000000..398f042d983c --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_rtc__base_third__party_sigslot_sigslot.h @@ -0,0 +1,19 @@ +--- ../../src/webrtc/src/rtc_base/third_party/sigslot/sigslot.h.orig 2021-01-28 23:16:17 UTC ++++ ../../src/webrtc/src/rtc_base/third_party/sigslot/sigslot.h +@@ -178,6 +178,8 @@ class multi_threaded_local { + #endif // _SIGSLOT_HAS_WIN32_THREADS + + #ifdef _SIGSLOT_HAS_POSIX_THREADS ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wthread-safety-analysis" + // The multi threading policies only get compiled in if they are enabled. + class multi_threaded_global { + public: +@@ -201,6 +203,7 @@ class multi_threaded_local { + private: + pthread_mutex_t m_mutex; + }; ++#pragma GCC diagnostic pop + #endif // _SIGSLOT_HAS_POSIX_THREADS + + template <class mt_policy> diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_system__wrappers_BUILD.gn b/multimedia/ringrtc/files/patch-src_webrtc_src_system__wrappers_BUILD.gn new file mode 100644 index 000000000000..018856d4c844 --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_system__wrappers_BUILD.gn @@ -0,0 +1,15 @@ +--- ../../src/webrtc/src/system_wrappers/BUILD.gn.orig 2021-01-28 23:16:17 UTC ++++ ../../src/webrtc/src/system_wrappers/BUILD.gn +@@ -58,11 +58,9 @@ rtc_library("system_wrappers") { + } + + if (is_linux || is_chromeos) { +- if (!build_with_chromium) { ++ if (!build_with_chromium && !is_bsd) { + sources += [ "source/cpu_features_linux.cc" ] + } +- +- libs += [ "rt" ] + } + + if (is_win) { diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_testing_BUILD.gn b/multimedia/ringrtc/files/patch-src_webrtc_src_testing_BUILD.gn new file mode 100644 index 000000000000..886b17bbdff3 --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_testing_BUILD.gn @@ -0,0 +1,27 @@ +--- ../../src/webrtc/src/testing/BUILD.gn.orig 2022-02-18 10:35:44 UTC ++++ ../../src/webrtc/src/testing/BUILD.gn +@@ -44,14 +44,14 @@ group("run_perf_test") { + } + } + +-python_library("run_isolated_script_test") { +- testonly = true +- pydeps_file = "//testing/scripts/run_isolated_script_test.pydeps" +- data = [ "//.vpython3" ] +-} ++#python_library("run_isolated_script_test") { ++# testonly = true ++# pydeps_file = "//testing/scripts/run_isolated_script_test.pydeps" ++# data = [ "//.vpython3" ] ++#} + +-python_library("wpt_android_lib") { +- testonly = true +- pydeps_file = "//testing/scripts/run_android_wpt.pydeps" +- data = [ "//.vpython3" ] +-} ++#python_library("wpt_android_lib") { ++# testonly = true ++# pydeps_file = "//testing/scripts/run_android_wpt.pydeps" ++# data = [ "//.vpython3" ] ++#} diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_testing_test.gni b/multimedia/ringrtc/files/patch-src_webrtc_src_testing_test.gni new file mode 100644 index 000000000000..aefefc3dae1e --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_testing_test.gni @@ -0,0 +1,11 @@ +--- ../../src/webrtc/src/testing/test.gni.orig 2022-02-18 09:31:19 UTC ++++ ../../src/webrtc/src/testing/test.gni +@@ -17,7 +17,7 @@ declare_args() { + # "location_tags.json", and so we don't want to try and upload the tags + # for their tests. + # And, some build configs may simply turn off generation altogether. +- tests_have_location_tags = generate_location_tags ++ tests_have_location_tags = false + } + + if (is_android) { diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_third__party_nasm_config_config-linux.h b/multimedia/ringrtc/files/patch-src_webrtc_src_third__party_nasm_config_config-linux.h new file mode 100644 index 000000000000..b28a5fd20da7 --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_third__party_nasm_config_config-linux.h @@ -0,0 +1,28 @@ +--- ../../src/webrtc/src/third_party/nasm/config/config-linux.h 2021-03-15 17:51:55 UTC ++++ ../../src/webrtc/src/third_party/nasm/config/config-linux.h +@@ -117,7 +117,7 @@ + #define HAVE_ACCESS 1 + + /* Define to 1 if you have the `canonicalize_file_name' function. */ +-#define HAVE_CANONICALIZE_FILE_NAME 1 ++//#define HAVE_CANONICALIZE_FILE_NAME 1 + + /* Define to 1 if you have the `cpu_to_le16' intrinsic function. */ + /* #undef HAVE_CPU_TO_LE16 */ +@@ -161,7 +161,7 @@ + #define HAVE_DECL_STRSEP 1 + + /* Define to 1 if you have the <endian.h> header file. */ +-#define HAVE_ENDIAN_H 1 ++// #define HAVE_ENDIAN_H 1 + + /* Define to 1 if you have the `faccessat' function. */ + #define HAVE_FACCESSAT 1 +@@ -323,6 +323,7 @@ + + /* Define to 1 if you have the <sys/endian.h> header file. */ + /* #undef HAVE_SYS_ENDIAN_H */ ++#define HAVE_SYS_ENDIAN_H 1 + + /* Define to 1 if you have the <sys/mman.h> header file. */ + #define HAVE_SYS_MMAN_H 1 diff --git a/multimedia/ringrtc/files/patch-src_webrtc_src_third__party_opus_BUILD.gn b/multimedia/ringrtc/files/patch-src_webrtc_src_third__party_opus_BUILD.gn new file mode 100644 index 000000000000..a6421520fc19 --- /dev/null +++ b/multimedia/ringrtc/files/patch-src_webrtc_src_third__party_opus_BUILD.gn @@ -0,0 +1,18 @@ +Use VAR_ARRAYS on FreeBSD (same as audio/opus) + +--- ../../src/webrtc/src/third_party/opus/BUILD.gn 2021-03-15 17:51:55 UTC ++++ ../../src/webrtc/src/third_party/opus/BUILD.gn +@@ -37,10 +37,11 @@ config("opus_private_config") { + "OPUS_EXPORT=", + "ENABLE_HARDENING", + ++ "VAR_ARRAYS", + # Prefer alloca() over variable length arrays which are often inefficient; + # the opus code will automatically handle this correctly per-platform. +- "USE_ALLOCA", +- "HAVE_ALLOCA_H", ++# "USE_ALLOCA", ++# "HAVE_ALLOCA_H", + ] + + include_dirs = [ diff --git a/multimedia/ringrtc/pkg-descr b/multimedia/ringrtc/pkg-descr new file mode 100644 index 000000000000..fac2dcb84123 --- /dev/null +++ b/multimedia/ringrtc/pkg-descr @@ -0,0 +1,4 @@ +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 diff --git a/multimedia/ringrtc/update.txt b/multimedia/ringrtc/update.txt new file mode 100644 index 000000000000..1305dd1bc939 --- /dev/null +++ b/multimedia/ringrtc/update.txt @@ -0,0 +1,5 @@ +To update this port: +Bump DISTVERSION +eventually bump WEBRTC_REV (sh net-im/signal-desktop/get_deps.sh) +eventually update *_REV (sh multimedia/ringrtc/webrtc_fetch.sh) +eventually update CARGO_CRATES (fetch -qo - https://raw.githubusercontent.com/signalapp/ringrtc/vXXX/src/rust/Cargo.lock | awk -f /usr/ports/Mk/Scripts/cargo-crates.awk) diff --git a/multimedia/ringrtc/webrtc_fetch.sh b/multimedia/ringrtc/webrtc_fetch.sh new file mode 100644 index 000000000000..910844df26f5 --- /dev/null +++ b/multimedia/ringrtc/webrtc_fetch.sh @@ -0,0 +1,107 @@ +#!/bin/sh + +WEBRTC_REV=4896c + +base_url="https://chromium.googlesource.com/chromium/src/base.git/+archive/" +boringssl_url="https://boringssl.googlesource.com/boringssl.git/+archive/" +build_url="https://chromium.googlesource.com/chromium/src/build.git/+archive/" +buildtools_url="https://chromium.googlesource.com/chromium/src/buildtools.git/+archive/" +catapult_url="https://chromium.googlesource.com/catapult.git/+archive/" +icu_url="https://chromium.googlesource.com/chromium/deps/icu.git/+archive/" +libjpeg_turbo_url="https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git/+archive/" +libsrtp_url="https://chromium.googlesource.com/chromium/deps/libsrtp.git/+archive/" +libvpx_url="https://chromium.googlesource.com/webm/libvpx.git/+archive/" +libyuv_url="https://chromium.googlesource.com/libyuv/libyuv.git/+archive/" +nasm_url="https://chromium.googlesource.com/chromium/deps/nasm.git/+archive/" +testing_url="https://chromium.googlesource.com/chromium/src/testing.git/+archive/" +third_party_url="https://chromium.googlesource.com/chromium/src/third_party.git/+archive/" + +fetch -q -o /tmp/DEPS https://raw.githubusercontent.com/signalapp/webrtc/${WEBRTC_REV}/DEPS + +base_hash=$(grep 'base@' /tmp/DEPS | awk -F '@' '{print $2}' | sed -e "s#',##" -e "s#'##") +printf "BASE_REV=\t${base_hash}\n" + +boringssl_hash=$(grep 'boringssl.git@' /tmp/DEPS | awk -F '@' '{print $2}' | sed -e "s#',##" -e "s#'##") +printf "BORINGSSL_REV=\t${boringssl_hash}\n" + +build_hash=$(grep 'build@' /tmp/DEPS | awk -F '@' '{print $2}' | sed -e "s#',##" -e "s#'##") +printf "BUILD_REV=\t${build_hash}\n" + +buildtools_hash=$(grep 'buildtools@' /tmp/DEPS | awk -F '@' '{print $2}' | sed -e "s#',##" -e "s#'##") +printf "BUILDTOOLS_REV=\t${buildtools_hash}\n" + +catapult_hash=$(grep 'catapult.git@' /tmp/DEPS | awk -F '@' '{print $2}' | sed -e "s#',##" -e "s#'##") +printf "CATAPULT_REV=\t${catapult_hash}\n" + +icu_hash=$(grep 'icu.git@' /tmp/DEPS | awk -F '@' '{print $2}' | sed -e "s#',##" -e "s#'##") +printf "ICU_REV=\t${icu_hash}\n" + +libjpeg_turbo_hash=$(grep 'libjpeg_turbo.git@' /tmp/DEPS | awk -F '@' '{print $2}' | sed -e "s#',##" -e "s#'##") +printf "LIBJPEG_TURBO_REV=\t${libjpeg_turbo_hash}\n" + +libsrtp_hash=$(grep 'libsrtp.git@' /tmp/DEPS | awk -F '@' '{print $2}' | sed -e "s#',##" -e "s#'##") +printf "LIBSRTP_REV=\t${libsrtp_hash}\n" + +libvpx_hash=$(grep 'libvpx.git@' /tmp/DEPS | awk -F '@' '{print $2}' | sed -e "s#',##" -e "s#'##") +printf "LIBVPX_REV=\t${libvpx_hash}\n" + +libyuv_hash=$(grep 'libyuv.git@' /tmp/DEPS | awk -F '@' '{print $2}' | sed -e "s#',##" -e "s#'##") +printf "LIBYUV_REV=\t${libyuv_hash}\n" + +nasm_hash=$(grep 'nasm.git@' /tmp/DEPS | awk -F '@' '{print $2}' | sed -e "s#',##" -e "s#'##") +printf "NASM_REV=\t${nasm_hash}\n" + +testing_hash=$(grep 'testing@' /tmp/DEPS | awk -F '@' '{print $2}' | sed -e "s#',##" -e "s#'##") +printf "TESTING_REV=\t${testing_hash}\n" + +third_party_hash=$(grep 'third_party@' /tmp/DEPS | awk -F '@' '{print $2}' | sed -e "s#',##" -e "s#'##") +printf "THIRD_PARTY_REV=\t${third_party_hash}\n" + +echo "fetch -o base-${base_hash}.tar.gz ${base_url}${base_hash}.tar.gz" +echo "fetch -o boringssl-${boringssl_hash}.tar.gz ${boringssl_url}${boringssl_hash}.tar.gz" +echo "fetch -o build-${build_hash}.tar.gz ${build_url}${build_hash}.tar.gz" +echo "fetch -o buildtools-${buildtools_hash}.tar.gz ${buildtools_url}${buildtools_hash}.tar.gz" +echo "fetch -o catapult-${catapult_hash}.tar.gz ${catapult_url}${catapult_hash}.tar.gz" +echo "fetch -o icu-${icu_hash}.tar.gz ${icu_url}${icu_hash}.tar.gz" +echo "fetch -o libjpeg_turbo-${libjpeg_turbo_hash}.tar.gz ${libjpeg_turbo_url}${libjpeg_turbo_hash}.tar.gz" +echo "fetch -o libsrtp-${libsrtp_hash}.tar.gz ${libsrtp_url}${libsrtp_hash}.tar.gz" +echo "fetch -o libvpx-${libvpx_hash}.tar.gz ${libvpx_url}${libvpx_hash}.tar.gz" +echo "fetch -o libyuv-${libyuv_hash}.tar.gz ${libyuv_url}${libyuv_hash}.tar.gz" +echo "fetch -o nasm-${nasm_hash}.tar.gz ${nasm_url}${nasm_hash}.tar.gz" +echo "fetch -o testing-${testing_hash}.tar.gz ${testing_url}${testing_hash}.tar.gz" +echo "fetch -o third_party-${third_party_hash}.tar.gz ${third_party_url}${third_party_hash}.tar.gz" + +exit + +mkdir -p base boringssl build buildtools catapult icu libjpeg_turbo libsrtp libvpx libyuv nasm testing third_party +tar xf base-${base_hash}.tar.gz -C base +tar xf boringssl-${boringssl_hash}.tar.gz -C boringssl +tar xf build-${build_hash}.tar.gz -C build +tar xf buildtools-${buildtools_hash}.tar.gz -C buildtools +tar xf catapult-${catapult_hash}.tar.gz -C catapult +tar xf icu-${icu_hash}.tar.gz -C icu +tar xf libjpeg_turbo-${libjpeg_turbo_hash}.tar.gz -C libjpeg_turbo +tar xf libsrtp-${libsrtp_hash}.tar.gz -C libsrtp +tar xf libvpx-${libvpx_hash}.tar.gz -C libvpx +tar xf libyuv-${libyuv_hash}.tar.gz -C libyuv +tar xf nasm-${nasm_hash}.tar.gz -C nasm +tar xf testing-${testing_hash}.tar.gz -C testing +tar xf third_party-${third_party_hash}.tar.gz -C third_party + +tar czf /tmp/base-${base_hash}.tar.gz base +tar czf /tmp/boringssl-${boringssl_hash}.tar.gz boringssl +tar czf /tmp/build-${build_hash}.tar.gz build +tar czf /tmp/buildtools-${buildtools_hash}.tar.gz buildtools +tar czf /tmp/catapult-${catapult_hash}.tar.gz catapult +tar czf /tmp/icu-${icu_hash}.tar.gz icu +tar czf /tmp/libjpeg_turbo-${libjpeg_turbo_hash}.tar.gz libjpeg_turbo +tar czf /tmp/libsrtp-${libsrtp_hash}.tar.gz libsrtp +tar czf /tmp/libvpx-${libvpx_hash}.tar.gz libvpx +tar czf /tmp/libyuv-${libyuv_hash}.tar.gz libyuv +tar czf /tmp/nasm-${nasm_hash}.tar.gz nasm +tar czf /tmp/testing-${testing_hash}.tar.gz testing +tar czf /tmp/third_party-${third_party_hash}.tar.gz third_party + +rm -rf base boringssl build buildtools catapult icu libjpeg_turbo libsrtp libvpx libyuv nasm testing third_party + +exit |
