aboutsummaryrefslogtreecommitdiffstats
path: root/community/tg_owt/APKBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'community/tg_owt/APKBUILD')
-rw-r--r--community/tg_owt/APKBUILD113
1 files changed, 79 insertions, 34 deletions
diff --git a/community/tg_owt/APKBUILD b/community/tg_owt/APKBUILD
index a8f74106d6a..95ae132551a 100644
--- a/community/tg_owt/APKBUILD
+++ b/community/tg_owt/APKBUILD
@@ -1,58 +1,95 @@
# Contributor: Newbyte <newbie13xd@gmail.com>
-# Maintainer: Newbyte <newbie13xd@gmail.com>
+# Contributor: Nulo <alpine@nulo.in>
+# Maintainer: Nulo <alpine@nulo.in>
pkgname=tg_owt
-pkgver=20210320
-pkgrel=0
+pkgver=0_git20230501
+pkgrel=2
+_commit="dcb5069ff76bd293e86928804208737e6cee2ccc"
+_libsrtp_commit="a566a9cfcd619e8327784aa7cff4a1276dc1e895"
+_libyuv_commit="00950840d1c9bcbb3eb6ebc5aac5793e71166c8b"
+_crc32c_commit="21fc8ef30415a635e7351ffa0e5d5367943d4a94"
pkgdesc="Telegram Desktop's fork of Google's WebRTC"
url="https://github.com/desktop-app/tg_owt"
-arch="all !x86 !ppc64le !s390x !mips !mips64 !armhf"
-# x86: contains textrels, mips64, s390x: due to alleged issues on Big Endian platforms
-# ppc64le: undefined sse2 optimizations, armhf: telegram-desktop misses some dependencies
+
+# matched to telegram-desktop
+arch="all !x86 !ppc64le !s390x !armhf !riscv64"
license="BSD-3-Clause"
-makedepends="
- alsa-lib-dev
- bsd-compat-headers
- cmake
+
+# Sorted according to
+# https://github.com/telegramdesktop/tdesktop/wiki/The-Packaged-Building-Mode
+# https://github.com/desktop-app/tg_owt/pull/55#discussion_r599718405
+# openh264 bundled because packaged is in testing
+# Not specified in the wiki page (see
+# https://github.com/desktop-app/tg_owt/pull/55):
+# pffft bundled because there's no stable ABI and patched
+# rnnoise bundled because "all remaining files are custom"
+# libsrtp bundled because tg_owt uses private APIs
+# libyuv bundled because there's no stable ABI and has many breaking updates
+# crc32c bundled because it isn't packaged and it is unclear if it will work
+# packaged
+depends_dev="
+ abseil-cpp-dev
+ libdrm-dev
+ libepoxy-dev
ffmpeg-dev
+ mesa-dev
+ glib-dev
jpeg-dev
- libvpx-dev
- openssl-dev
+ openssl-dev>3
opus-dev
- perl
- protobuf-dev
- pulseaudio-dev
- yasm
+ pipewire-dev
+ libvpx-dev
libx11-dev
+ libxcomposite-dev
+ libxdamage-dev
+ libxext-dev
+ libxfixes-dev
+ libxrender-dev
+ libxrandr-dev
libxtst-dev
"
-_commit="e5a67a122e5094eefec7b7da0c41792e036f4f8e"
-_libyuv_commit="19d71f6b351fe992ae34b114eebd872c383a6bdb"
+makedepends="
+ $depends_dev
+ cmake
+ yasm
+ samurai
+ "
+
subpackages="$pkgname-dev"
source="
$pkgname-$_commit.tar.gz::https://github.com/desktop-app/tg_owt/archive/$_commit.tar.gz
- libyuv-$_libyuv_commit.zip::https://codeload.github.com/lemenkov/libyuv/zip/$_libyuv_commit
- cmake_fixes.patch"
+ libyuv-$_libyuv_commit.tar.gz::https://github.com/klemensn/libyuv/archive/$_libyuv_commit.tar.gz
+ crc32c-$_crc32c_commit.tar.gz::https://github.com/google/crc32c/archive/$_crc32c_commit.tar.gz
+ libsrtp-$_libsrtp_commit.tar.gz::https://github.com/cisco/libsrtp/archive/$_libsrtp_commit.tar.gz
+ abseil.patch
+ cstdint.patch
+ gcc12.patch
+ gcc13.patch
+ "
builddir="$srcdir/$pkgname-$_commit"
prepare() {
default_prepare
mv ../libyuv-$_libyuv_commit/* src/third_party/libyuv
+ mv ../crc32c-$_crc32c_commit/* src/third_party/crc32c/src
+ mv ../libsrtp-$_libsrtp_commit/* src/third_party/libsrtp/
}
build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
- export CFLAGS="$CFLAGS -fPIC"
- export CXXFLAGS="$CXXFLAGS -fPIC"
-
- cmake -B build \
+ case "$CARCH" in
+ arm*)
+ # our armv7 baseline has no neon
+ export CXXFLAGS="$CXXFLAGS -DLIBYUV_DISABLE_NEON"
+ ;;
+ esac
+ # dynamic version has broken linking
+ cmake -B build -G Ninja \
+ -DTG_OWT_PACKAGED_BUILD=True \
+ -DBUILD_SHARED_LIBS=OFF \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
- -DBUILD_SHARED_LIBS=True \
- -DCMAKE_BUILD_TYPE=None \
- $CMAKE_CROSSOPTS .
+ -DCMAKE_BUILD_TYPE=MinSizeRel
cmake --build build
}
@@ -63,8 +100,16 @@ check() {
}
package() {
- DESTDIR="$pkgdir" cmake --build build --target install
+ DESTDIR="$pkgdir" cmake --install build
}
-sha512sums="bf72554815f0f54872b4e8cb9b088ed8234bedf7b80b30455ead137d0b376e43d0352eec9526ae5d06a74d7fa53e50ef87eb852ed1959a622d7b35c9ac8badb2 tg_owt-e5a67a122e5094eefec7b7da0c41792e036f4f8e.tar.gz
-97f2f9ead3574f3f57fb2b24958e5ab5ad43a0fa149705637cf1091ea935c647da4ff9af668e053b4c42600a1e6e0b6e697f76d56a2c0c2b09791ec565e19d9b libyuv-19d71f6b351fe992ae34b114eebd872c383a6bdb.zip
-6225295af5da820c957a0e8474f91eb1c19b40073de2487e97ec49a51511b61a535c3b60a41c669d3db8079d55a2ae3337ca0a80a5d3ad53a56b7428719b1b8e cmake_fixes.patch"
+
+sha512sums="
+32870f1901b6dcd164263e7ecfecc1c8529f9507e77d2a5e3b31e7e95d4b1387988ef02a67040c1c7e50777cba067a10026ed9a505bd4bb6549719a4da5c8a82 tg_owt-dcb5069ff76bd293e86928804208737e6cee2ccc.tar.gz
+9f455c4e21cd168daa66f41f486a2b73d298dd1ce74e30856a2623eb9b77058318468177cee6b98b882baec1d2585336817fe8f765018fdf0430870c231d4ec2 libyuv-00950840d1c9bcbb3eb6ebc5aac5793e71166c8b.tar.gz
+80dc12463c95d87a25eac49249ea303d6e4734bcf9a849dbcc564c70df1b1b5f70e7f7e4db96f4c1c66bb3d4eeca87aeef9f2312a8162ade885f09b049fd7417 crc32c-21fc8ef30415a635e7351ffa0e5d5367943d4a94.tar.gz
+930e665434e80e8a26d81b785563c915619b546a9a0af0455a14278816997074add852fae107027f4899415cb0ab47ffbf9492bea76b94b10f558b52098bbf92 libsrtp-a566a9cfcd619e8327784aa7cff4a1276dc1e895.tar.gz
+b1d609500ad24bb015b3ab7ad3775f2667d674155abb12dd35d8e10b83c5e91c69fd8e415fd6543a45608b3dfd7fa72eb4ce9ec960e5742fb04cafaa20f6f206 abseil.patch
+b530508390370ca1ed0728e4429920a7d3132293f3d8a2a3f3220efd2c00ceb7a40ee58184f595b1101389133570257900e4a44e7611d4064f7220b67c33b93b cstdint.patch
+2eb235583c952b07f19e455f79a0d464b77f7fce99b5434bff54f7cea2770c117261409c70d7963c78c55822b45c6da467e966df1bcadda70048673b73ed3a95 gcc12.patch
+329f60f69f61d783ac3474cd8812d3a85a4298df75e4aead3a960a4714382fd5425ef867f7b8c941e1b6a8231d968b4384f36bf9770cb434d0cbffeacdf3a5a9 gcc13.patch
+"