unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
blob 977f72475ffbdc007a98ec1dc3da55af1f04deac 4942 bytes (raw)
name: gnu/packages/patches/webrtc-for-telegram-desktop-allow-disabling-X11.patch 	 # note: path name is non-authoritative(*)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
 
Add -DTG_OWT_USE_X11

Allows disabling X11 desktop capturing independently of pipewire support, for
the few people that run wayland without any X11 support whatsoever.

This setup is untested, but supported by the GNI build system, see:
* src/modules/desktop_capture/BUILD.gn (option rtc_use_x11_extensions)

Toggling the WEBRTC_USE_X11 define also affects some files under
src/modules/audio_device, but that falls under "X11 support", regardless...

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2e081ae7..c269177b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -24,13 +24,14 @@ endif()

 option(BUILD_SHARED_LIBS "Builds shared libraries instead of static." OFF)
 option(TG_OWT_USE_PROTOBUF "Use protobuf to generate additional headers. Useful for packaged build." ${BUILD_SHARED_LIBS})
+cmake_dependent_option(TG_OWT_USE_X11 "Use X11 for desktop capture on non-Apple Unix."  ON "UNIX; NOT APPLE" OFF)
 cmake_dependent_option(TG_OWT_USE_PIPEWIRE "Use pipewire for desktop capture." ON "UNIX; NOT APPLE" OFF)
 cmake_dependent_option(TG_OWT_DLOPEN_PIPEWIRE "dlopen pipewire for desktop capture." ${not_packaged_build} TG_OWT_USE_PIPEWIRE OFF)
 option(TG_OWT_BUILD_AUDIO_BACKENDS "Build webrtc audio backends." OFF)

 if (BUILD_SHARED_LIBS)
     set(CMAKE_POSITION_INDEPENDENT_CODE ON)
-    message(WARNING
+    message(DEBUG
         "tg_owt is a fork of Google's webrtc library and is developed by them as a static library without stable ABI in mind."
         "The feature of building tg_owt as a shared library is community maintained, it may and will break at any time without guarantee to work again."
         "Please reconsider your decision. Good luck."
@@ -96,6 +97,10 @@ endif()
 add_library(tg_owt)
 init_target(tg_owt)

+if (TG_OWT_USE_X11)
+    link_x11(tg_owt)
+endif()
+
 if (TG_OWT_USE_PIPEWIRE)
     if (TG_OWT_DLOPEN_PIPEWIRE)
         include(cmake/generate_stubs.cmake)
@@ -188,10 +193,6 @@ endif()
 include(cmake/libwebrtcbuild.cmake)
 target_link_libraries(tg_owt PUBLIC tg_owt::libwebrtcbuild)

-if (UNIX AND NOT APPLE)
-    link_x11(tg_owt)
-endif()
-
 function(add_sublibrary postfix)
     add_library(tg_owt_${postfix} OBJECT)
     init_feature_target(tg_owt_${postfix} ${postfix})
@@ -2369,6 +2370,39 @@ if (NOT TG_OWT_USE_PROTOBUF)
     )
 endif()

+if (NOT TG_OWT_USE_X11)
+    remove_target_sources(tg_owt ${webrtc_loc}
+        # src/modules/desktop_capture/BUILD.gn (rtc_use_x11_extensions)
+        modules/desktop_capture/linux/x11/mouse_cursor_monitor_x11.cc
+        modules/desktop_capture/linux/x11/mouse_cursor_monitor_x11.h
+        modules/desktop_capture/linux/x11/screen_capturer_x11.cc
+        modules/desktop_capture/linux/x11/screen_capturer_x11.h
+        modules/desktop_capture/linux/x11/shared_x_display.cc
+        modules/desktop_capture/linux/x11/shared_x_display.h
+        modules/desktop_capture/linux/x11/window_capturer_x11.cc
+        modules/desktop_capture/linux/x11/window_capturer_x11.h
+        modules/desktop_capture/linux/x11/window_finder_x11.cc
+        modules/desktop_capture/linux/x11/window_finder_x11.h
+        modules/desktop_capture/linux/x11/window_list_utils.cc
+        modules/desktop_capture/linux/x11/window_list_utils.h
+        modules/desktop_capture/linux/x11/x_atom_cache.cc
+        modules/desktop_capture/linux/x11/x_atom_cache.h
+        modules/desktop_capture/linux/x11/x_error_trap.cc
+        modules/desktop_capture/linux/x11/x_error_trap.h
+        modules/desktop_capture/linux/x11/x_server_pixel_buffer.cc
+        modules/desktop_capture/linux/x11/x_server_pixel_buffer.h
+        modules/desktop_capture/linux/x11/x_window_property.cc
+        modules/desktop_capture/linux/x11/x_window_property.h
+
+        # screen_drawer_linux.cc depends on x11, rest are revdeps
+        modules/desktop_capture/screen_drawer.cc
+        modules/desktop_capture/screen_drawer.h
+        modules/desktop_capture/screen_drawer_linux.cc
+        modules/desktop_capture/screen_drawer_lock_posix.cc
+        modules/desktop_capture/screen_drawer_lock_posix.h
+    )
+endif()
+
 if (NOT TG_OWT_USE_PIPEWIRE)
     remove_target_sources(tg_owt ${webrtc_loc}
         modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc
diff --git a/cmake/libwebrtcbuild.cmake b/cmake/libwebrtcbuild.cmake
index 4d037f4b..388b7aa9 100644
--- a/cmake/libwebrtcbuild.cmake
+++ b/cmake/libwebrtcbuild.cmake
@@ -29,6 +29,13 @@ INTERFACE
     BWE_TEST_LOGGING_COMPILE_TIME_ENABLE=0
 )

+if (TG_OWT_USE_X11)
+    target_compile_definitions(libwebrtcbuild
+    INTERFACE
+        WEBRTC_USE_X11
+    )
+endif()
+
 if (TG_OWT_USE_PIPEWIRE)
     target_compile_definitions(libwebrtcbuild
     INTERFACE
@@ -65,11 +72,6 @@ else()
         INTERFACE
             WEBRTC_MAC
         )
-    else()
-        target_compile_definitions(libwebrtcbuild
-        INTERFACE
-            WEBRTC_USE_X11
-        )
     endif()

     if (CMAKE_SYSTEM_NAME STREQUAL "Linux")

debug log:

solving 977f72475f ...
found 977f72475f in https://yhetil.org/guix-patches/y76wnae8yyk.wl-hako@ultrarare.space/ ||
	https://yhetil.org/guix-patches/y76czc66nsw.wl-hako@ultrarare.space/

applying [1/1] https://yhetil.org/guix-patches/y76wnae8yyk.wl-hako@ultrarare.space/
diff --git a/gnu/packages/patches/webrtc-for-telegram-desktop-allow-disabling-X11.patch b/gnu/packages/patches/webrtc-for-telegram-desktop-allow-disabling-X11.patch
new file mode 100644
index 0000000000..977f72475f

Checking patch gnu/packages/patches/webrtc-for-telegram-desktop-allow-disabling-X11.patch...
Applied patch gnu/packages/patches/webrtc-for-telegram-desktop-allow-disabling-X11.patch cleanly.

skipping https://yhetil.org/guix-patches/y76czc66nsw.wl-hako@ultrarare.space/ for 977f72475f
index at:
100644 977f72475ffbdc007a98ec1dc3da55af1f04deac	gnu/packages/patches/webrtc-for-telegram-desktop-allow-disabling-X11.patch

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).