mirror of
https://github.com/TelegramMessenger/Telegram-iOS.git
synced 2026-07-05 19:28:46 +02:00
Squashed buildout of the tgcalls testbench: - CLI test tool with --mode p2p/reflector/group/group-churn, cross-version interop (--version, --version2), and quiet/summary output - Linux toolchain + Docker multi-stage build, AWS Fargate mass test harness, local parallel mass test harness with signaling loss simulation - SCTP writable gate, retransmission timer tuning, role-based handshake - InstanceV2CompatImpl (PeerConnection backend with V2Impl signaling) and SignalingTranslator for v14.0.0 interop - In-process Go/Pion SFU (ICE+DTLS+SRTP+SCTP per participant) with audio RTP forwarding, ActiveAudio/VideoSsrcs data channel broadcast, RTCP feedback path, and CGo c-archive integration - GroupInstanceReferenceImpl (PeerConnection group-call) and mixed-impl group mode (--reference-participants), with SDP munging for simulcast - H264 simulcast group video (FakeVideoTrackSource pattern generator, FakeVideoSink frame counting, --video flag, two-pass channel setup, reactive video setup from ActiveVideoSsrcs) - Group churn stress mode (--mode group-churn, --churn-cycles) - SFU stream-quality adaptation: BandwidthEstimator, LayerSelector state machine, RtxRingBuffer, simulcast SSRC rewrite - Transport-cc feedback generation, NetworkSimulator (delay/jitter/loss/ token-bucket bandwidth), --network-scenario step-down-up - CLAUDE.md updates throughout Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
77 lines
2.2 KiB
Bash
Executable file
77 lines
2.2 KiB
Bash
Executable file
#! /bin/sh
|
|
|
|
set -ex
|
|
|
|
ARCH="$1"
|
|
BUILD_DIR=$(echo "$(cd "$(dirname "$2")"; pwd -P)/$(basename "$2")")
|
|
SOURCE_CODE_ARCHIVE="$3"
|
|
|
|
MINIOSVERSION="13.0"
|
|
|
|
OPT_CFLAGS="-Os -g"
|
|
OPT_LDFLAGS=""
|
|
OPT_CONFIG_ARGS=""
|
|
|
|
OUTPUTDIR="$BUILD_DIR/Public"
|
|
|
|
# where we will keep our sources and build from.
|
|
SRCDIR="${BUILD_DIR}/src"
|
|
mkdir -p $SRCDIR
|
|
# where we will store intermediary builds
|
|
INTERDIR="${BUILD_DIR}/built"
|
|
mkdir -p $INTERDIR
|
|
|
|
########################################
|
|
|
|
tar zxf "$BUILD_DIR/$SOURCE_CODE_ARCHIVE" -C $SRCDIR
|
|
cd "${SRCDIR}/opus-"*
|
|
|
|
if [ "${ARCH}" = "linux_x86_64" ] || [ "${ARCH}" = "linux_arm64" ]; then
|
|
mkdir -p "${INTERDIR}"
|
|
|
|
# Keep it simple and portable for container builds.
|
|
./configure \
|
|
--disable-shared \
|
|
--enable-static \
|
|
--with-pic \
|
|
--disable-extra-programs \
|
|
--disable-doc \
|
|
--disable-asm \
|
|
--enable-intrinsics \
|
|
${OPT_CONFIG_ARGS} \
|
|
--prefix="${INTERDIR}" \
|
|
CFLAGS="$CFLAGS ${OPT_CFLAGS} -fPIC" \
|
|
LDFLAGS="$LDFLAGS ${OPT_LDFLAGS}"
|
|
|
|
make -j"$(getconf _NPROCESSORS_ONLN || echo 4)"
|
|
make install
|
|
exit 0
|
|
elif [ "${ARCH}" == "x86_64" ]; then
|
|
PLATFORM="iphonesimulator"
|
|
EXTRA_CFLAGS="-arch ${ARCH}"
|
|
EXTRA_CONFIG="--host=x86_64-apple-darwin"
|
|
elif [ "${ARCH}" == "sim_arm64" ]; then
|
|
PLATFORM="iphonesimulator"
|
|
EXTRA_CFLAGS="-arch arm64 --target=arm64-apple-ios$MINIOSVERSION-simulator"
|
|
EXTRA_CONFIG="--host=arm-apple-darwin20"
|
|
elif [ "${ARCH}" == "macos_arm64" ]; then
|
|
PLATFORM="macosx"
|
|
EXTRA_CFLAGS="-arch arm64 --target=arm64-apple-macosx14.0"
|
|
EXTRA_CONFIG="--host=arm-apple-darwin20"
|
|
else
|
|
PLATFORM="iphoneos"
|
|
EXTRA_CFLAGS="-arch ${ARCH}"
|
|
EXTRA_CONFIG="--host=arm-apple-darwin"
|
|
fi
|
|
|
|
SDK_PATH="$(xcrun --sdk $PLATFORM --show-sdk-path 2>/dev/null)"
|
|
|
|
mkdir -p "${INTERDIR}"
|
|
|
|
./configure --disable-shared --enable-static --with-pic --disable-extra-programs --disable-doc --disable-asm --enable-intrinsics ${EXTRA_CONFIG} \
|
|
--prefix="${INTERDIR}" \
|
|
LDFLAGS="$LDFLAGS ${OPT_LDFLAGS} -fPIE -miphoneos-version-min=${MINIOSVERSION} -L${OUTPUTDIR}/lib" \
|
|
CFLAGS="$CFLAGS ${EXTRA_CFLAGS} ${OPT_CFLAGS} -fPIE -miphoneos-version-min=${MINIOSVERSION} -I${OUTPUTDIR}/include -isysroot ${SDK_PATH}" \
|
|
|
|
make -j
|
|
make install
|