The package rpms/boinc-client.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/boinc-client.git/commit/?id=874a27ae....
Change: -ExcludeArch: ppc64
Thanks.
Full change: ============
commit 0effcec63862f4807dcb01c34a0cd7fc49b25023 Author: Germano Massullo germano.massullo@gmail.com Date: Fri Oct 30 12:56:34 2020 +0100
7.16.11 release, added 4071.patch, updated disable_idle_time_detection.patch
diff --git a/.gitignore b/.gitignore index 70e189a..e264e35 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ boinc-6.10.45.tar.xz /boinc-client-7.14.2.tar.gz /boinc-client-7.16.1.tar.gz /boinc-client-7.16.6.tar.gz +/boinc-client-7.16.11.tar.gz diff --git a/4071.patch b/4071.patch new file mode 100644 index 0000000..166b8dd --- /dev/null +++ b/4071.patch @@ -0,0 +1,111 @@ +From 86d0e9fbd1589dc1849829b3fac1cd6cc45abfa8 Mon Sep 17 00:00:00 2001 +From: David Anderson davea@ssl.berkeley.edu +Date: Tue, 27 Oct 2020 19:21:49 -0700 +Subject: [PATCH] client: allow an empty GUI RPC password, but generate alert + message + +boinccmd: show alert messages after attach RPCs + +PR #3709 disallowed empty GUI RPC password files. +This increased security on shared machines. +But it meant that on Linux, after installing BOINC as a package, +the user had to locate and change the protection +and/or the ownership of the password file, which is undesirable. + +This change allows empty password files but tells the user +that they should think about the security implications. +With the Manager this is delivered as a notice. +With boinccmd the message is written to stderr after an attach operation. +--- + client/boinc_cmd.cpp | 26 ++++++++++++++++++++++++++ + client/gui_rpc_server.cpp | 17 ++++++++--------- + 2 files changed, 34 insertions(+), 9 deletions(-) + +diff --git a/client/boinc_cmd.cpp b/client/boinc_cmd.cpp +index 38b8170a4c..fd05474f76 100644 +--- a/client/boinc_cmd.cpp ++++ b/client/boinc_cmd.cpp +@@ -163,6 +163,30 @@ void acct_mgr_do_rpc( + } + } + ++// Get messages from client, and show any that are USER_ALERT priority. ++// Intended use: show user that GUI RPCs are not password-protected. ++// For now, do this after attach to project or AM ++// ++void show_alerts(RPC_CLIENT &rpc) { ++ MESSAGES messages; ++ int retval = rpc.get_messages(0, messages); ++ if (retval) { ++ fprintf(stderr, "Can't get alerts from client: %s\n", ++ boincerror(retval) ++ ); ++ return; ++ } ++ for (unsigned int j=0; j<messages.messages.size(); j++) { ++ MESSAGE& md = *messages.messages[j]; ++ if (md.priority != MSG_USER_ALERT) continue; ++ if (!md.project.empty()) continue; ++ strip_whitespace(md.body); ++ fprintf(stderr, "\nAlert from client: %s\n", ++ md.body.c_str() ++ ); ++ } ++} ++ + int main(int argc, char** argv) { + RPC_CLIENT rpc; + int i, retval, port=0; +@@ -382,6 +406,7 @@ int main(int argc, char** argv) { + canonicalize_master_url(url, sizeof(url)); + char* auth = next_arg(argc, argv, i); + retval = rpc.project_attach(url, auth, ""); ++ show_alerts(rpc); + } else if (!strcmp(cmd, "--file_transfer")) { + FILE_TRANSFER ft; + +@@ -529,6 +554,7 @@ int main(int argc, char** argv) { + char* am_name = next_arg(argc, argv, i); + char* am_passwd = next_arg(argc, argv, i); + acct_mgr_do_rpc(rpc, am_url, am_name, am_passwd); ++ show_alerts(rpc); + } else if (!strcmp(op, "info")) { + ACCT_MGR_INFO ami; + retval = rpc.acct_mgr_info(ami); +diff --git a/client/gui_rpc_server.cpp b/client/gui_rpc_server.cpp +index 3b14a255f9..c0593d682d 100644 +--- a/client/gui_rpc_server.cpp ++++ b/client/gui_rpc_server.cpp +@@ -120,7 +120,7 @@ bool GUI_RPC_CONN_SET::recent_rpc_needs_network(double interval) { + } + + // read the GUI RPC password from gui_rpc_auth.cfg; +-// create one if missing or empty. ++// create one if missing + // + void GUI_RPC_CONN_SET::get_password() { + int retval; +@@ -132,16 +132,15 @@ void GUI_RPC_CONN_SET::get_password() { + strip_whitespace(password); + } + fclose(f); +- if (strlen(password)) { +- return; +- } + +- // File is empty; don't allow this. +- // Fall through and create a password. ++ // if password is empty, allow it but issue a warning + // +- msg_printf(NULL, MSG_INFO, +- "%s is empty - assigning new GUI RPC password", GUI_RPC_PASSWD_FILE +- ); ++ if (!strlen(password)) { ++ msg_printf(NULL, MSG_USER_ALERT, ++ "Warning: GUI RPC password is empty. BOINC can be controlled by any user on this computer. See https://boinc.berkeley.edu/gui_rpc_passwd.php for more information." ++ ); ++ } ++ return; + } + + // make a random password diff --git a/boinc-client.spec b/boinc-client.spec index 4b68fd3..e542e20 100644 --- a/boinc-client.spec +++ b/boinc-client.spec @@ -17,13 +17,13 @@
Summary: The BOINC client Name: boinc-client -Version: 7.16.6 -Release: 7%{?dist} +Version: 7.16.11 +Release: 1%{?dist} License: LGPLv2+ URL: http://boinc.berkeley.edu/
%global major_version %(v=%{version}; echo ${v:0:4}) -%global commit 72b77e88d757baf19469b4f7da54bc91b921eb88 +%global commit 5222682feca5506f6168ed5883581a0320c13f8b %global gittag client_release/%{major_version}/%{version} # gittag_custom is needed in %%setup process because tar.gz unpacks a folder # named for example boinc-client_release-7.14-7.14.2 @@ -64,6 +64,8 @@ Patch3: manager_shut_down_connected_client.patch Patch4: prevent_manager_from_starting_client.patch # Fedora / EPEL, the folder /etc/boinc-client does not exist, so it should be removed Patch5: remove_etc_boinc-client_from_systemd_unit_file.patch +# Concerning 4071.patch read https://github.com/BOINC/boinc/pull/4071 +Patch6: 4071.patch
Requires: logrotate Requires(post): systemd @@ -315,6 +317,11 @@ fi %{_includedir}/boinc
%changelog +* Fri Oct 30 00:09:07 CET 2020 Germano Massullo germano.massullo@gmail.com - 7.16.11-1 +- 7.16.11 release +- Added 4071.patch Read https://github.com/BOINC/boinc/pull/4071 +- + * Tue Oct 06 2020 Germano Massullo germano.massullo@gmail.com - 7.16.6-7 - Re-enabled ppc64 architecture on EPEL7. Read https://bugzilla.redhat.com/show_bug.cgi?id=1648290
diff --git a/disable_idle_time_detection.patch b/disable_idle_time_detection.patch index bc438cb..847e470 100644 --- a/disable_idle_time_detection.patch +++ b/disable_idle_time_detection.patch @@ -1,7 +1,7 @@ -diff -urNr boinc-client_release-7.16-7.16.6-orig/client/client_state.cpp boinc-client_release-7.16-7.16.6/client/client_state.cpp ---- boinc-client_release-7.16-7.16.6-orig/client/client_state.cpp 2020-03-23 06:13:30.000000000 +0100 -+++ boinc-client_release-7.16-7.16.6/client/client_state.cpp 2020-04-23 18:03:31.981600455 +0200 -@@ -988,7 +988,8 @@ +diff -urNr boinc-client_release-7.16-7.16.11-orig/client/client_state.cpp boinc-client_release-7.16-7.16.11/client/client_state.cpp +--- boinc-client_release-7.16-7.16.11-orig/client/client_state.cpp 2020-08-30 10:04:59.000000000 +0200 ++++ boinc-client_release-7.16-7.16.11/client/client_state.cpp 2020-10-30 12:39:28.363185257 +0100 +@@ -1003,7 +1003,8 @@ user_active = device_status.user_active; #else long idle_time = host_info.user_idle_time(check_all_logins); @@ -11,9 +11,9 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/client_state.cpp boinc-c #endif
if (user_active != old_user_active) { -diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc-client_release-7.16-7.16.6/client/hostinfo_unix.cpp ---- boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp 2020-03-23 06:13:30.000000000 +0100 -+++ boinc-client_release-7.16-7.16.6/client/hostinfo_unix.cpp 2020-04-23 17:36:05.311975291 +0200 +diff -urNr boinc-client_release-7.16-7.16.11-orig/client/hostinfo_unix.cpp boinc-client_release-7.16-7.16.11/client/hostinfo_unix.cpp +--- boinc-client_release-7.16-7.16.11-orig/client/hostinfo_unix.cpp 2020-08-30 10:04:59.000000000 +0200 ++++ boinc-client_release-7.16-7.16.11/client/hostinfo_unix.cpp 2020-10-30 12:50:06.251852694 +0100 @@ -41,16 +41,6 @@ #include <cstring> #endif @@ -31,7 +31,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc- #include <cstdio> #include <cstdlib> #include <cstring> -@@ -1559,11 +1549,7 @@ +@@ -1555,11 +1545,7 @@ }
inline long device_idle_time(const char *device) { @@ -44,7 +44,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc- }
// list of directories and prefixes of TTY devices -@@ -1622,19 +1608,7 @@ +@@ -1618,19 +1604,7 @@ }
inline long all_tty_idle_time() { @@ -65,7 +65,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc- return idle_time; }
-@@ -1692,43 +1666,7 @@ +@@ -1688,43 +1662,7 @@ // faster than the previous method, which called IOHIDGetParameter(). // long HOST_INFO::user_idle_time(bool /*check_all_logins*/) { @@ -109,7 +109,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc- return (long)idleTime; }
-@@ -1736,18 +1674,8 @@ +@@ -1732,18 +1670,8 @@
#if HAVE_UTMP_H inline long user_idle_time(struct utmp* u) { @@ -130,7 +130,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc- }
#if !HAVE_SETUTENT || !HAVE_GETUTENT -@@ -1791,227 +1719,29 @@ +@@ -1787,202 +1715,28 @@ inline long all_logins_idle() { struct utmp* u; setutent(); @@ -195,33 +195,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc- - } - } - -- // if the display_values vector is empty, assume something went wrong -- // (couldn't open directory, no apparent Xn files). Test a static list of -- // DISPLAY values instead that is likely to catch most common use cases. -- // (I don't know of many environments where there will simultaneously be -- // more than seven active, local Xservers. I'm sure they exist... somewhere. -- // But seven was the magic number for me). -- // -- if ( display_values.size() == 0 ) { -- if ( log_flags.idle_detection_debug ) { -- msg_printf(NULL, MSG_INFO, -- "[idle_detection] No DISPLAY values found in /tmp/.X11-unix/." -- ); -- msg_printf(NULL, MSG_INFO, -- "[idle_detection] Using static DISPLAY list, :{0..6}." -- ); -- } -- display_values.push_back(":0"); -- display_values.push_back(":1"); -- display_values.push_back(":2"); -- display_values.push_back(":3"); -- display_values.push_back(":4"); -- display_values.push_back(":5"); -- display_values.push_back(":6"); -- return display_values; -- } else { -- return display_values; -- } +- return display_values; -} - -// Ask the X server for user idle time (using XScreenSaver API) @@ -295,7 +269,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc- - // - no_available_x_display = false; - XScreenSaverQueryInfo(disp, DefaultRootWindow(disp), xssInfo); -- idle_time = xssInfo->idle; +- display_idle_time = xssInfo->idle; - - // Close the connection to the XServer - // @@ -307,10 +281,11 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc- - - if (log_flags.idle_detection_debug) { - msg_printf(NULL, MSG_INFO, -- "[idle_detection] XSS idle detection succeeded on DISPLAY '%s'.", it->c_str() +- "[idle_detection] XSS idle detection succeeded on display '%s'.", +- it->c_str() - ); - msg_printf(NULL, MSG_INFO, -- "[idle_detection] idle_time: %ld", idle_time +- "[idle_detection] display idle time: %ld sec", display_idle_time - ); - } - @@ -330,7 +305,7 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc- -#endif // HAVE_XSS - -#endif // LINUX_LIKE_SYSTEM - +- long HOST_INFO::user_idle_time(bool check_all_logins) { - long idle_time = USER_IDLE_TIME_INF; + long idle_time = 0; @@ -355,10 +330,10 @@ diff -urNr boinc-client_release-7.16-7.16.6-orig/client/hostinfo_unix.cpp boinc- - // We should find out which of the following are actually relevant - // on which systems (if any) - // -- idle_time = min(idle_time, (long)device_idle(idle_time, "/dev/mouse")); +- idle_time = min(idle_time, (long)device_idle_time("/dev/mouse")); - // solaris, linux -- idle_time = min(idle_time, (long)device_idle(idle_time, "/dev/input/mice")); -- idle_time = min(idle_time, (long)device_idle(idle_time, "/dev/kbd")); +- idle_time = min(idle_time, (long)device_idle_time("/dev/input/mice")); +- idle_time = min(idle_time, (long)device_idle_time("/dev/kbd")); - // solaris + idle_time = 0; #endif // LINUX_LIKE_SYSTEM diff --git a/sources b/sources index 3b921f2..729dd2a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boinc-client-7.16.6.tar.gz) = a99208704fdacb9810703df289b391d085a7180c2b50c9d11601eb6f484178ce2e33fe77948f0edeb96463a495fd6ed68e33eb293931d778099c52961cb46d69 +SHA512 (boinc-client-7.16.11.tar.gz) = 316fe315372beea8448cb101bb1b73871aed5d95b0d1961a008e2ba31e562f21d5081cbd9885f90e9247eb39daf5ae368eb0b6a9bcfd47220a633296cadd297d
commit 874a27aee2e06c00e58ae9bff4119ffb7b9e8beb Author: Germano Massullo germano.massullo@gmail.com Date: Tue Oct 6 11:50:55 2020 +0200
Re-enabled ppc64 architecture on EPEL7
diff --git a/boinc-client.spec b/boinc-client.spec index aecc3bf..4b68fd3 100644 --- a/boinc-client.spec +++ b/boinc-client.spec @@ -18,7 +18,7 @@ Summary: The BOINC client Name: boinc-client Version: 7.16.6 -Release: 6%{?dist} +Release: 7%{?dist} License: LGPLv2+ URL: http://boinc.berkeley.edu/
@@ -89,10 +89,6 @@ BuildRequires: openssl-devel BuildRequires: sqlite-devel BuildRequires: xcb-util-devel
-# Read https://bugzilla.redhat.com/show_bug.cgi?id=1648290 -%if 0%{?el7} -ExcludeArch: ppc64 -%endif # EPEL8 webkit2gtk3 is missing for s390x, aarch64 %if 0%{?el8} ExcludeArch: s390x aarch64 @@ -319,6 +315,9 @@ fi %{_includedir}/boinc
%changelog +* Tue Oct 06 2020 Germano Massullo germano.massullo@gmail.com - 7.16.6-7 +- Re-enabled ppc64 architecture on EPEL7. Read https://bugzilla.redhat.com/show_bug.cgi?id=1648290 + * Fri Sep 18 2020 Germano Massullo germano.massullo@gmail.com - 7.16.6-6 - Renamed boinc-manager.desktop to boincmgr.desktop This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1880553
arch-excludes@lists.fedoraproject.org