diff options
author | V3n3RiX <venerix@koprulu.sector> | 2025-03-02 19:29:42 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2025-03-02 19:29:42 +0000 |
commit | 1c70934cf5610c0fecd25c223ec275afa3d6ebd0 (patch) | |
tree | b66f30f60424010c65d89acbce1dafedc43a2822 /app-misc/ddcutil | |
parent | d628c1f8493d09e3deb5d19971cd21691d8758e4 (diff) |
gentoo auto-resync : 02:03:2025 - 19:29:42
Diffstat (limited to 'app-misc/ddcutil')
-rw-r--r-- | app-misc/ddcutil/Manifest | 2 | ||||
-rw-r--r-- | app-misc/ddcutil/files/ddcutil-2.2.0-fix-build-without-X.patch | 145 |
2 files changed, 130 insertions, 17 deletions
diff --git a/app-misc/ddcutil/Manifest b/app-misc/ddcutil/Manifest index 8fe5eba20fd7..6ddf47d8dc00 100644 --- a/app-misc/ddcutil/Manifest +++ b/app-misc/ddcutil/Manifest @@ -1,7 +1,7 @@ AUX ddcutil-1.3.0-no-werror.patch 1835 BLAKE2B 1edbfb8c00db14f5e33dd229b83e5145b8a659f8ea4c2c2626b79abbdafb8b7872fe55e1dccd7cb6ec5f390c8a91591d61fad08d08b952457e6ad8df54075ae6 SHA512 a8664bafa314c3664c32b3a7c7a22bf7a3a9163dd57888e91726f0d82371b65f873342b0daba598ac02020cef5742bbecd6b2434c2392c46642951f9bba4d2f2 AUX ddcutil-1.4.1-no-werror.patch 773 BLAKE2B 8b1c37926e300db238c6be8340a1a0c41cd47ed2183cf50d57001af6f2d23b71643abedebf98496db720ee5d9e5d95a4d31c6def77a57c056b87e82b1f39d288 SHA512 510d094c6cc24ed0d1134e6b62acb77341c07b87ec4d78516f02d5742ebc4933df946625645f404e6b9fc2e918a14de4f748487aeee821bc5cb2f12c6fd90b39 AUX ddcutil-2.1.4-fix-clang.patch 2236 BLAKE2B c636641e59d398911b64c5d1b462af1c55849ac0fd4a4f42610d0580616e95fa318ae6cbe68416229f5b5a59cae2f6ce2fe2b33e789143eaf3adc6981e9a25c7 SHA512 337ed0af7455318c26b62cc9a16a1a09db5bd7380a1dce4ee36dd05d98bcbc712a3e4f52ad782c698f759c557839427945cf59dee740753562e5d0a7081c95af -AUX ddcutil-2.2.0-fix-build-without-X.patch 9622 BLAKE2B 76ec7c74de47e8256976a649b5c19e03f884a4039700bd3b80d73686dd7062104e24906bfd65d6abd9e3e0ba1f9f24e3171cd7991b95c7b65ee36e97f55adb10 SHA512 a2c656c36b10f48a4ec6520c1a6e8f651c4c683dad8997a3efcf05873a037d113938222429b6de1ebb8dbda9be9973bd94af86d5ebbf3c18534909f0406f7b84 +AUX ddcutil-2.2.0-fix-build-without-X.patch 13594 BLAKE2B 859b54d0250a4b83c944e5b77f20698311dc81cdf2efa0155cefb0e474e0b6a209866d36ed25bc836a048bc7b0ea50a8ab64a9c773b46c4187da603cc50ec87a SHA512 c3c9608a82ee1eee5ff7fe6103a5d83aee754b98e3547f6720a475c7053ee66e2720d9f359b1327f23a1cd53ae069b354ab9b83541b793558eba3e289f37cfb3 AUX ddcutil-2.2.0-fix-clang.patch 968 BLAKE2B 4686f41c3cb42a39cc81ffea0f3d111c274d571bce42279a6f5ef4eccf5cd2e9085ca0260026a627abbe10088e082e2bba8fd3cd8cf36366c13031f9a1532d31 SHA512 feb6255db1d6e53abee9915524ca2ab3aaab0ff78dd35af34a46a845a1e36ec3d7f3921c90f1b589b9b408b8aada568b35b3e6c48e4365856aa45670a7020f50 DIST ddcutil-1.3.0.tar.gz 816789 BLAKE2B 1cb3b64961503416b85b792e1002ec67788f8cf7d622be1c4930808f99e16974ff57ed582d1d02a67580e3f4d92bef54b3669fd7378462bf4c98a3643d6786be SHA512 93d69958b2e1dcb66ad700712742536179383c93f2ec1f746b6a6c78adfd6daa861275208850cc807e0c16a11ea84904cb13ceef512ca76e1daa910410303d41 DIST ddcutil-1.4.5.tar.gz 817492 BLAKE2B b6442d9f7ec3687a3e75d9784dc9f62563f42c72c82a8a2ea24a392c3c4f186578c2c2f6592ba12c324568a20b7b25082acce9e7b753c41c1ac925d9d6de62dd SHA512 c355f104b60dbc3c893dea473d841181cfcaacd0cb2e97bc41ea829185c7ccdcff19ab19189ee572e7f2f6b41cbb2bd6c569ad3c09f6d645f9e342b7d1a5310f diff --git a/app-misc/ddcutil/files/ddcutil-2.2.0-fix-build-without-X.patch b/app-misc/ddcutil/files/ddcutil-2.2.0-fix-build-without-X.patch index b8e8b2d75c06..172e704c543f 100644 --- a/app-misc/ddcutil/files/ddcutil-2.2.0-fix-build-without-X.patch +++ b/app-misc/ddcutil/files/ddcutil-2.2.0-fix-build-without-X.patch @@ -10,15 +10,17 @@ Subject: [PATCH] build with configure option --disable-x11 eliminates watch-mode XEVENT addresses issue #504 + --- src/base/parms.h | 6 +++++- src/cmdline/cmd_parser_goption.c | 12 ++++++++++++ src/dw/Makefile.am | 10 ++++++++-- - src/dw/dw_common.c | 2 ++ - src/dw/dw_main.c | 14 ++++++++++++++ - src/dw/dw_poll.c | 4 ++++ + src/dw/dw_common.c | 4 ++++ + src/dw/dw_common.h | 6 +++++- + src/dw/dw_main.c | 31 ++++++++++++++++++++++++++++++- + src/dw/dw_poll.c | 6 ++++++ src/dw/dw_services.c | 4 ++++ - 7 files changed, 49 insertions(+), 3 deletions(-) + 8 files changed, 74 insertions(+), 5 deletions(-) diff --git a/src/base/parms.h b/src/base/parms.h index 3a8fbdd5..fcfac321 100644 @@ -125,7 +127,7 @@ index 0327f1af..063beef4 100644 # Rename to "all=local" for development diff --git a/src/dw/dw_common.c b/src/dw/dw_common.c -index 62f87226..29c4ff75 100644 +index 62f87226..ddb456e3 100644 --- a/src/dw/dw_common.c +++ b/src/dw/dw_common.c @@ -59,7 +59,9 @@ @@ -138,8 +140,45 @@ index 62f87226..29c4ff75 100644 #include "dw_common.h" +@@ -132,7 +134,9 @@ void dw_free_watch_displays_data(Watch_Displays_Data * wdd) { + if (wdd) { + assert( memcmp(wdd->marker, WATCH_DISPLAYS_DATA_MARKER, 4) == 0 ); + wdd->marker[3] = 'x'; ++#ifdef USE_X11 + free(wdd->evdata); ++#endif + free(wdd); + } + } +diff --git a/src/dw/dw_common.h b/src/dw/dw_common.h +index bd310923..e12ca63e 100644 +--- a/src/dw/dw_common.h ++++ b/src/dw/dw_common.h +@@ -14,7 +14,9 @@ + + #include "base/displays.h" + ++#ifdef USE_X11 + #include "dw_xevent.h" ++#endif + + extern uint16_t initial_stabilization_millisec; + extern uint16_t stabilization_poll_millisec; +@@ -40,9 +42,11 @@ typedef struct { + pid_t main_process_id; + pid_t main_thread_id; + DDCA_Display_Event_Class event_classes; +- DDC_Watch_Mode watch_mode; ++ DDC_Watch_Mode watch_mode; + int watch_loop_millisec; ++#ifdef USE_X11 + XEvent_Data * evdata; ++#endif + } Watch_Displays_Data; + + void dw_free_watch_displays_data(Watch_Displays_Data * wdd); diff --git a/src/dw/dw_main.c b/src/dw/dw_main.c -index 996d6f95..d3218c89 100644 +index 996d6f95..c5e098cb 100644 --- a/src/dw/dw_main.c +++ b/src/dw/dw_main.c @@ -46,7 +46,9 @@ @@ -152,7 +191,20 @@ index 996d6f95..d3218c89 100644 #include "dw_main.h" -@@ -79,8 +81,10 @@ resolve_watch_mode(DDC_Watch_Mode initial_mode, XEvent_Data ** xev_data_loc) { +@@ -65,7 +67,12 @@ static DDCA_Display_Event_Class active_watch_displays_classes = DDCA_EVENT_CLASS + static Watch_Displays_Data * global_wdd; // needed to pass to dw_stop_watch_displays() + + ++// *** ++// Iftesting out resolve_watch_mode() if X11 is not defined is a quick and dirty hack. ++// It relies on the fact that currently the only mode other than XEVENT is POLL ++// *** + ++#ifdef USE_X11 + /** Determines the actual watch mode to be used + * + * @param initial_mode mode requested +@@ -79,8 +86,10 @@ resolve_watch_mode(DDC_Watch_Mode initial_mode, XEvent_Data ** xev_data_loc) { DBGTRC_STARTING(debug, TRACE_GROUP, "initial_mode=%s xev_data_loc=%p", watch_mode_name(initial_mode), xev_data_loc); DDC_Watch_Mode resolved_watch_mode = Watch_Mode_Poll; @@ -163,7 +215,7 @@ index 996d6f95..d3218c89 100644 #ifndef ENABLE_UDEV if (initial_mode == Watch_Mode_Udev) -@@ -89,6 +93,7 @@ resolve_watch_mode(DDC_Watch_Mode initial_mode, XEvent_Data ** xev_data_loc) { +@@ -89,6 +98,7 @@ resolve_watch_mode(DDC_Watch_Mode initial_mode, XEvent_Data ** xev_data_loc) { if (initial_mode == Watch_Mode_Dynamic) { resolved_watch_mode = Watch_Mode_Poll; // always works, may be slow @@ -171,7 +223,7 @@ index 996d6f95..d3218c89 100644 char * xdg_session_type = getenv("XDG_SESSION_TYPE"); DBGTRC_NOPREFIX(debug, DDCA_TRC_NONE, "XDG_SESSION_TYPE=|%s|", xdg_session_type); if (xdg_session_type && // can xdg_session_type ever not be set -@@ -111,6 +116,7 @@ resolve_watch_mode(DDC_Watch_Mode initial_mode, XEvent_Data ** xev_data_loc) { +@@ -111,6 +121,7 @@ resolve_watch_mode(DDC_Watch_Mode initial_mode, XEvent_Data ** xev_data_loc) { // sysfs_fully_reliable = is_sysfs_reliable(); // if (!sysfs_fully_reliable) // dw_watch_mode = Watch_Mode_Poll; @@ -179,7 +231,7 @@ index 996d6f95..d3218c89 100644 } else { resolved_watch_mode = initial_mode; -@@ -124,6 +130,7 @@ resolve_watch_mode(DDC_Watch_Mode initial_mode, XEvent_Data ** xev_data_loc) { +@@ -124,6 +135,7 @@ resolve_watch_mode(DDC_Watch_Mode initial_mode, XEvent_Data ** xev_data_loc) { } #endif @@ -187,7 +239,7 @@ index 996d6f95..d3218c89 100644 if (resolved_watch_mode == Watch_Mode_Xevent) { xevdata = dw_init_xevent_screen_change_notification(); // *xev_data_loc = ddc_init_xevent_screen_change_notification(); -@@ -132,15 +139,18 @@ resolve_watch_mode(DDC_Watch_Mode initial_mode, XEvent_Data ** xev_data_loc) { +@@ -132,20 +144,23 @@ resolve_watch_mode(DDC_Watch_Mode initial_mode, XEvent_Data ** xev_data_loc) { MSG_W_SYSLOG(DDCA_SYSLOG_WARNING, "X11 RANDR api unavailable. Switching to Watch_Mode_Poll"); } } @@ -206,7 +258,47 @@ index 996d6f95..d3218c89 100644 DBGTRC_DONE(debug, TRACE_GROUP, "resolved_watch_mode: %s. *xev_data_loc: %p", watch_mode_name(resolved_watch_mode), *xev_data_loc); return resolved_watch_mode; -@@ -278,6 +288,7 @@ dw_stop_watch_displays(bool wait, DDCA_Display_Event_Class* enabled_classes_loc) + } +- ++#endif + + /** Starts thread that watches for changes in display connection status. + * +@@ -162,7 +177,9 @@ dw_start_watch_displays(DDCA_Display_Event_Class event_classes) { + watch_mode_name(watch_displays_mode), watch_thread, event_classes, SBOOL(all_video_adapters_implement_drm)); + DBGTRC_NOPREFIX(debug, TRACE_GROUP, "thread_id = %d, traced_function_stack=%p", TID(), traced_function_stack); + Error_Info * err = NULL; ++#ifdef USE_X11 + XEvent_Data * xev_data = NULL; ++#endif + + if (!all_video_adapters_implement_drm) { + err = ERRINFO_NEW(DDCRC_INVALID_OPERATION, "Requires DRM video drivers"); +@@ -174,8 +191,12 @@ dw_start_watch_displays(DDCA_Display_Event_Class event_classes) { + goto bye; + } + ++#ifdef USE_X11 + DDC_Watch_Mode resolved_watch_mode = resolve_watch_mode(watch_displays_mode, &xev_data); + ASSERT_IFF(resolved_watch_mode == Watch_Mode_Xevent, xev_data); ++#else ++ DDC_Watch_Mode resolved_watch_mode = Watch_Mode_Poll; ++#endif + + int calculated_watch_loop_millisec = dw_calc_watch_loop_millisec(resolved_watch_mode); + // DBGTRC_NOPREFIX(debug, DDCA_TRC_NONE, "calc_watch_loop_millisec() returned %d", calculated_watch_loop_millisec); +@@ -216,8 +237,10 @@ dw_start_watch_displays(DDCA_Display_Event_Class event_classes) { + wdd->event_classes = event_classes; + wdd->watch_mode = resolved_watch_mode; + wdd->watch_loop_millisec = calculated_watch_loop_millisec; ++#ifdef USE_X11 + if (xev_data) + wdd->evdata = xev_data; ++#endif + global_wdd = wdd; + + #ifdef CALLBACK_DISPLAYS_THREAD +@@ -278,6 +301,7 @@ dw_stop_watch_displays(bool wait, DDCA_Display_Event_Class* enabled_classes_loc) if (watch_thread) { DBGTRC_NOPREFIX(debug, DDCA_TRC_NONE, "resolved_watch_mode = %s", watch_mode_name(global_wdd->watch_mode)); @@ -214,7 +306,7 @@ index 996d6f95..d3218c89 100644 if (global_wdd->watch_mode == Watch_Mode_Xevent) { if (terminate_using_x11_event) { // for testing, does not currently work dw_send_x11_termination_message(global_wdd->evdata); -@@ -290,6 +301,9 @@ dw_stop_watch_displays(bool wait, DDCA_Display_Event_Class* enabled_classes_loc) +@@ -290,6 +314,9 @@ dw_stop_watch_displays(bool wait, DDCA_Display_Event_Class* enabled_classes_loc) else { terminate_watch_thread = true; // signal watch thread to terminate } @@ -224,8 +316,18 @@ index 996d6f95..d3218c89 100644 // DBGTRC_NOPREFIX(debug, TRACE_GROUP, "Waiting %d millisec for watch thread to terminate...", 4000); // usleep(4000*1000); // greater than the sleep in watch_displays_using_poll() +@@ -433,7 +460,9 @@ void init_dw_main() { + RTTI_ADD_FUNC(dw_start_watch_displays); + RTTI_ADD_FUNC(dw_stop_watch_displays); + RTTI_ADD_FUNC(dw_get_active_watch_classes); ++#ifdef USE_X11 + RTTI_ADD_FUNC(resolve_watch_mode); ++#endif + RTTI_ADD_FUNC(dw_redetect_displays); + } + diff --git a/src/dw/dw_poll.c b/src/dw/dw_poll.c -index 677a6ce6..336b5c92 100644 +index 677a6ce6..e1244491 100644 --- a/src/dw/dw_poll.c +++ b/src/dw/dw_poll.c @@ -62,7 +62,9 @@ @@ -238,7 +340,18 @@ index 677a6ce6..336b5c92 100644 #include "dw_poll.h" -@@ -276,6 +278,7 @@ gpointer dw_watch_display_connections(gpointer data) { +@@ -206,8 +208,10 @@ gpointer dw_watch_display_connections(gpointer data) { + Watch_Displays_Data * wdd = data; + assert(wdd && memcmp(wdd->marker, WATCH_DISPLAYS_DATA_MARKER, 4) == 0); + assert(wdd->watch_mode == Watch_Mode_Xevent || wdd->watch_mode == Watch_Mode_Poll); ++#ifdef USE_X11 + if (wdd->watch_mode == Watch_Mode_Xevent) + assert(wdd->evdata); ++#endif + GPtrArray * displays_to_recheck = g_ptr_array_new(); + + DBGTRC_STARTING(debug, TRACE_GROUP, +@@ -276,6 +280,7 @@ gpointer dw_watch_display_connections(gpointer data) { continue; dw_terminate_if_invalid_thread_or_process(cur_pid, cur_tid); @@ -246,7 +359,7 @@ index 677a6ce6..336b5c92 100644 if (wdd->watch_mode == Watch_Mode_Xevent) { if (terminate_using_x11_event) { bool event_found = dw_next_X11_event_of_interest(wdd->evdata); -@@ -295,6 +298,7 @@ gpointer dw_watch_display_connections(gpointer data) { +@@ -295,6 +300,7 @@ gpointer dw_watch_display_connections(gpointer data) { continue; } } |