From e76c93a56b3344fe1ec0cb1fd26f4c1dce15adf2 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Tue, 20 Sep 2022 23:35:07 +0800 Subject: [PATCH] gnu: webrtc-for-telegram-desktop: Use modern package style. * gnu/packages/telegram.scm (libvpx-for-telegram-desktop) (libyuv-for-telegram-desktop): New variables. (webrtc-for-telegram-desktop)[arguments]: Convert to list of G-Expressions. Inline libvpx-for-telegram-desktop and libyuv-for-telegram-desktop. [inputs]: Remove libvpx and libyuv. Drop labels. Signed-off-by: Liliana Marie Prikler --- gnu/packages/telegram.scm | 149 +++++++++++++++++++------------------- 1 file changed, 76 insertions(+), 73 deletions(-) diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm index 08a72d2e0f..6d0359732b 100644 --- a/gnu/packages/telegram.scm +++ b/gnu/packages/telegram.scm @@ -62,6 +62,7 @@ #:use-module (gnu packages xorg) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system copy) @@ -71,6 +72,36 @@ #:use-module (guix build-system python) #:use-module (guix build-system qt)) +(define libvpx-for-telegram-desktop + (let ((commit "5b63f0f821e94f8072eb483014cfc33b05978bb9") + (revision "112")) + (origin + (method git-fetch) + (uri (git-reference + (url "https://chromium.googlesource.com/webm/libvpx") + (commit commit))) + (file-name (git-file-name + "libvpx-for-telegram-desktop" + (git-version "1.9.0" revision commit))) + (sha256 + (base32 + "1psvxaddihlw1k5n0anxif3qli6zyw2sa2ywn6mkb8six9myrp68"))))) + +(define libyuv-for-telegram-desktop + (let ((commit "ad890067f661dc747a975bc55ba3767fe30d4452") + (revision "2211")) + (origin + (method git-fetch) + (uri (git-reference + (url "https://chromium.googlesource.com/libyuv/libyuv") + (commit commit))) + (file-name (git-file-name + "libyuv-for-telegram-desktop" + (git-version "0" revision commit))) + (sha256 + (base32 + "01knnk4h247rq536097n9n3s3brxlbby3nv3ppdgsqfda3k159ll"))))) + (define-public webrtc-for-telegram-desktop (let ((commit "91d836dc84a16584c6ac52b36c04c0de504d9c34") (revision "166")) @@ -94,82 +125,54 @@ (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" - ;; Not available in Guix. - "pffft" "usrsctp" - ;; Has cmake support files for libvpx input. - "libvpx"))) - (with-directory-excursion "src/third_party" - (for-each delete-file-recursively - (lset-difference string=? - (scandir ".") - (cons* "." ".." keep))))))))) + #~(begin + (let ((keep + '( ;; Custom forks which are incompatible with the ones in Guix. + "abseil-cpp" "libsrtp" "openh264" "rnnoise" + ;; Not available in Guix. + "pffft" "usrsctp" + ;; Has cmake support files for libvpx input. + "libvpx"))) + (with-directory-excursion "src/third_party" + (for-each delete-file-recursively + (lset-difference string=? + (scandir ".") + (cons* "." ".." keep))))))))) (build-system cmake-build-system) (arguments - `(#: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 - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((libvpx-from (assoc-ref inputs "libvpx")) - (libyuv-from (assoc-ref inputs "libyuv")) - (libvpx-to (string-append (getcwd) - "/src/third_party/libvpx/source/libvpx")) - (libyuv-to (string-append (getcwd) - "/src/third_party/libyuv"))) - (copy-recursively libvpx-from libvpx-to) - (copy-recursively libyuv-from libyuv-to))))))) - (native-inputs - `(("perl" ,perl) - ("pkg-config" ,pkg-config) - ("python" ,python-wrapper) - ("yasm" ,yasm))) + (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 + (lambda _ + (let* ((third-party (string-append (getcwd) "/src/third_party")) + (libvpx-to (string-append third-party + "/libvpx/source/libvpx")) + (libyuv-to (string-append third-party "/libyuv"))) + (copy-recursively #$libvpx-for-telegram-desktop libvpx-to) + (copy-recursively #$libyuv-for-telegram-desktop + libyuv-to))))))) + (native-inputs (list perl pkg-config python-wrapper yasm)) (inputs - `(("alsa" ,alsa-lib) - ("ffmpeg" ,ffmpeg) - ("libjpeg" ,libjpeg-turbo) - ("glib" ,glib) - ("libvpx" - ,(origin - (method git-fetch) - (uri - (git-reference - (url "https://chromium.googlesource.com/webm/libvpx") - (commit "5b63f0f821e94f8072eb483014cfc33b05978bb9"))) - (file-name - (git-file-name "libvpx-for-webrtc-for-telegram-desktop" version)) - (sha256 - (base32 "1psvxaddihlw1k5n0anxif3qli6zyw2sa2ywn6mkb8six9myrp68")))) - ("libyuv" - ,(origin - (method git-fetch) - (uri - (git-reference - (url "https://chromium.googlesource.com/libyuv/libyuv") - (commit "ad890067f661dc747a975bc55ba3767fe30d4452"))) - (file-name - (git-file-name "libyuv-for-webrtc-for-telegram-desktop" version)) - (sha256 - (base32 "01knnk4h247rq536097n9n3s3brxlbby3nv3ppdgsqfda3k159ll")))) - ("libxcomposite" ,libxcomposite) - ("libxdamage" ,libxdamage) - ("libxrender" ,libxrender) - ("libxrandr" ,libxrandr) - ("openssl" ,openssl) - ("opus" ,opus) - ("pipewire" ,pipewire) - ("protobuf" ,protobuf) - ("pulseaudio" ,pulseaudio) - ("x11" ,libx11) - ("xext" ,libxext) - ("xtst" ,libxtst))) + (list alsa-lib + ffmpeg + libjpeg-turbo + glib + libxcomposite + libxdamage + libxrender + libxrandr + openssl + opus + pipewire + protobuf + pulseaudio + libx11 + libxext + libxtst)) (synopsis "WebRTC support for Telegram Desktop") (description "WebRTC-for-Telegram-Desktop is a custom WebRTC fork by Telegram project, for its use in telegram desktop client.")