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=874a2....
Change:
-ExcludeArch: ppc64
Thanks.
Full change:
============
commit 0effcec63862f4807dcb01c34a0cd7fc49b25023
Author: Germano Massullo <germano.massullo(a)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(a)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(a)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(a)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(a)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(a)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(a)gmail.com> - 7.16.6-6
- Renamed boinc-manager.desktop to boincmgr.desktop This fixes
https://bugzilla.redhat.com/show_bug.cgi?id=1880553