@@ -1968,6 +1968,7 @@ dist_patch_DATA = \
%D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \
%D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch \
%D%/packages/patches/webrtc-audio-processing-big-endian.patch \
+ %D%/packages/patches/webrtc-for-telegram-desktop-fix-gcc12-cstdint.patch \
%D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \
%D%/packages/patches/widelands-add-missing-map-include.patch \
%D%/packages/patches/widelands-system-wide_minizip.patch \
new file mode 100644
@@ -0,0 +1,21 @@
+From 86d2bcd7afb8706663d29e30f65863de5a626142 Mon Sep 17 00:00:00 2001
+From: Xiretza <xiretza@xiretza.xyz>
+Date: Sun, 15 May 2022 12:47:41 +0200
+Subject: [PATCH] fix(h265_pps_parser): fix missing cstdint include
+
+---
+ src/common_video/h265/h265_pps_parser.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/common_video/h265/h265_pps_parser.h b/src/common_video/h265/h265_pps_parser.h
+index 28c95ea9..c180b1b9 100644
+--- a/src/common_video/h265/h265_pps_parser.h
++++ b/src/common_video/h265/h265_pps_parser.h
+@@ -12,6 +12,7 @@
+ #define COMMON_VIDEO_H265_PPS_PARSER_H_
+
+ #include "absl/types/optional.h"
++#include <cstdint>
+
+ namespace rtc {
+ class BitBuffer;
@@ -30,6 +30,8 @@ (define-module (gnu packages telegram)
#:use-module (gnu packages digest)
#:use-module (gnu packages fcitx)
#:use-module (gnu packages fcitx5)
+ #:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
@@ -58,6 +60,7 @@ (define-module (gnu packages telegram)
#:use-module (gnu packages tls)
#:use-module (gnu packages video)
#:use-module (gnu packages web)
+ #:use-module (gnu packages xdisorg)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xorg)
#:use-module ((guix licenses) #:prefix license:)
@@ -104,6 +107,21 @@ (define libyuv-for-telegram-desktop
(base32
"01knnk4h247rq536097n9n3s3brxlbby3nv3ppdgsqfda3k159ll")))))
+(define crc32c-for-telegram-desktop
+ (let ((commit "21fc8ef30415a635e7351ffa0e5d5367943d4a94")
+ (revision "78"))
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/google/crc32c")
+ (commit commit)))
+ (file-name (git-file-name
+ "crc32c-for-telegram-desktop"
+ (git-version "0" revision commit)))
+ (sha256
+ (base32
+ "0cddf8z7v33gfb2k60lkzwa97g20m1v81cnvllm3q9ylpnx8g6f4")))))
+
(define cmake-helpers-for-telegram-desktop
(origin
(method git-fetch)
@@ -297,8 +315,8 @@ (define tgcalls-for-telegram-desktop
"0fvad87hyxli83xn19mgf8jjrrh6y6iaig14pckpbkg33vf4wqkj"))))
(define-public webrtc-for-telegram-desktop
- (let ((commit "91d836dc84a16584c6ac52b36c04c0de504d9c34")
- (revision "166"))
+ (let ((commit "621f3da55331733bf0d1b223786b96b68c03dca1")
+ (revision "327"))
(hidden-package
(package
(name "webrtc-for-telegram-desktop")
@@ -314,58 +332,62 @@ (define-public webrtc-for-telegram-desktop
(file-name
(git-file-name name version))
(sha256
- (base32 "0plwdp6xgxi27hif5j7kpq425cidxyxbbga3z2f64dsninwy5p1x"))
+ (base32 "1ks1572k1jj7pmzwm79p2gdgi31dd4bs761bphnx32zyq4c6skxk"))
+ (patches
+ (search-patches
+ ;; https://github.com/desktop-app/tg_owt/pull/101
+ "webrtc-for-telegram-desktop-fix-gcc12-cstdint.patch"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-1)))
(snippet
#~(begin
(let ((keep
- '( ;; Custom forks which are incompatible with the ones in Guix.
- "abseil-cpp" "libsrtp" "openh264" "rnnoise"
+ '("abseil-cpp" "libsrtp" "rnnoise"
;; Not available in Guix.
- "pffft" "usrsctp"
- ;; Has cmake support files for libvpx input.
- "libvpx")))
+ "crc32c" "pffft")))
(with-directory-excursion "src/third_party"
(for-each delete-file-recursively
(lset-difference string=?
(scandir ".")
- (cons* "." ".." keep)))))))))
+ (cons* "." ".." keep)))))
+ ;; Use system openh264.
+ (substitute* "CMakeLists.txt"
+ (("\\include\\(cmake\\/libopenh264\\.cmake\\)")""))))))
(build-system cmake-build-system)
(arguments
(list
#:tests? #f ; No target
- #:configure-flags #~(list "-DCMAKE_C_FLAGS=-fPIC"
- "-DCMAKE_CXX_FLAGS=-fPIC")
#:phases
#~(modify-phases %standard-phases
- (add-after 'unpack 'copy-inputs
+ (add-after 'unpack 'unpack-additional-sources
(lambda _
(let* ((third-party (string-append (getcwd) "/src/third_party"))
- (libvpx-to (string-append third-party
- "/libvpx/source/libvpx"))
+ (crc32c-to (string-append third-party "/crc32c/src"))
(libyuv-to (string-append third-party "/libyuv")))
- (copy-recursively #$libvpx-for-telegram-desktop libvpx-to)
+ (copy-recursively #$crc32c-for-telegram-desktop crc32c-to)
(copy-recursively #$libyuv-for-telegram-desktop
libyuv-to)))))))
- (native-inputs (list perl pkg-config python-wrapper yasm))
+ (native-inputs (list pkg-config python-wrapper yasm))
(inputs
- (list alsa-lib
+ (list abseil-cpp-cxxstd17
ffmpeg
libjpeg-turbo
- glib
- libxcomposite
- libxdamage
- libxrender
- libxrandr
+ libvpx
+ openh264
openssl
opus
- pipewire
+ ;; TG_OWT_USE_PROTOBUF
protobuf
- pulseaudio
- libx11
+ ;; TG_OWT_USE_PIPEWIRE
+ glib libdrm libglvnd mesa pipewire-0.3
+ ;; TG_OWT_USE_X11
+ libxcomposite
+ libxdamage
libxext
+ libxfixes
+ libxrandr
+ libxrender
libxtst))
(synopsis "WebRTC support for Telegram Desktop")
(description "WebRTC-for-Telegram-Desktop is a custom WebRTC fork by
@@ -377,13 +399,11 @@ (define-public webrtc-for-telegram-desktop
license:asl2.0
;; LibYuv
(license:non-copyleft "file:///src/third_party/libyuv/LICENSE")
- ;; OpenH264
- license:bsd-2
;; PFFFT
(license:non-copyleft "file:///src/third_party/pffft/LICENSE")
;; RnNoise
license:gpl3
- ;; LibSRTP, LibVPx, UsrSCTP and Others
+ ;; LibSRTP, Crc32c and Others
license:bsd-3))))))
(define-public rlottie-for-telegram-desktop