diff --git a/SOURCES/0001-ureport-use-python3-to-get-consumerCertDir.patch b/SOURCES/0001-ureport-use-python3-to-get-consumerCertDir.patch index e6fe7a6..1bf85ec 100644 --- a/SOURCES/0001-ureport-use-python3-to-get-consumerCertDir.patch +++ b/SOURCES/0001-ureport-use-python3-to-get-consumerCertDir.patch @@ -7,14 +7,14 @@ Related to #1592073 Signed-off-by: Matej Habrnal <mhabrnal@redhat.com> --- - src/lib/ureport.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) + src/lib/ureport.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/ureport.c b/src/lib/ureport.c index c32c948a..d2045f0f 100644 --- a/src/lib/ureport.c +++ b/src/lib/ureport.c -@@ -81,9 +81,10 @@ rhsm_config_get_consumer_cert_dir(void) +@@ -81,9 +81,9 @@ rhsm_config_get_consumer_cert_dir(void) return xstrdup(result); result = run_in_shell_and_save_output(0, @@ -22,7 +22,6 @@ index c32c948a..d2045f0f 100644 + "python3 -c \"from rhsm.config import initConfig; print(initConfig().get('rhsm', 'consumerCertDir'))\"", NULL, NULL); -+ /* run_in_shell_and_save_output always returns non-NULL */ if (result[0] != '/') goto error; diff --git a/SOURCES/0004-replace-all-Fedora-URLs-by-corresponding-values-for-.patch b/SOURCES/0004-replace-all-Fedora-URLs-by-corresponding-values-for-.patch new file mode 100644 index 0000000..1cccb95 --- /dev/null +++ b/SOURCES/0004-replace-all-Fedora-URLs-by-corresponding-values-for-.patch @@ -0,0 +1,66 @@ +From dfc340b695d047018d38090e24a501f7b0c0dad1 Mon Sep 17 00:00:00 2001 +From: Matej Habrnal <mhabrnal@redhat.com> +Date: Tue, 28 Aug 2018 15:42:33 +0200 +Subject: [PATCH] replace all Fedora URLs by corresponding values for RHEL + +Signed-off-by: Matej Habrnal <mhabrnal@redhat.com> +--- + src/plugins/report_EmergencyAnalysis.xml.in | 2 +- + src/plugins/report_uReport.xml.in | 2 +- + src/plugins/reporter-ureport.c | 2 +- + src/plugins/ureport.conf | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/src/plugins/report_EmergencyAnalysis.xml.in b/src/plugins/report_EmergencyAnalysis.xml.in +index 3fb2bd23..c00a734f 100644 +--- a/src/plugins/report_EmergencyAnalysis.xml.in ++++ b/src/plugins/report_EmergencyAnalysis.xml.in +@@ -15,7 +15,7 @@ + <option type="text" name="Upload_URL"> + <_label>URL</_label> + <allow-empty>no</allow-empty> +- <default-value>https://retrace.fedoraproject.org/faf/dumpdirs/new/</default-value> ++ <default-value>https://localhost/faf/dumpdirs/new/</default-value> + </option> + <advanced-options> + <option type="text" name="http_proxy"> +diff --git a/src/plugins/report_uReport.xml.in b/src/plugins/report_uReport.xml.in +index 791c9faa..996f20b2 100644 +--- a/src/plugins/report_uReport.xml.in ++++ b/src/plugins/report_uReport.xml.in +@@ -14,7 +14,7 @@ + <_label>uReport Server URL</_label> + <allow-empty>no</allow-empty> + <_description>Address of uReport webservice</_description> +- <default-value>https://retrace.fedoraproject.org/faf</default-value> ++ <default-value>https://bug-report.redhat.com</default-value> + </option> + <option type="bool" name="uReport_WatchReportedBugs"> + <_label>Watch already reported bugs</_label> +diff --git a/src/plugins/reporter-ureport.c b/src/plugins/reporter-ureport.c +index cc1cedc2..0aa3324f 100644 +--- a/src/plugins/reporter-ureport.c ++++ b/src/plugins/reporter-ureport.c +@@ -22,7 +22,7 @@ + #include "ureport.h" + #include "libreport_curl.h" + +-#define DEFAULT_WEB_SERVICE_URL "https://retrace.fedoraproject.org/faf" ++#define DEFAULT_WEB_SERVICE_URL "https://bug-report.redhat.com" + + int main(int argc, char **argv) + { +diff --git a/src/plugins/ureport.conf b/src/plugins/ureport.conf +index 3cde1e32..04dc1000 100644 +--- a/src/plugins/ureport.conf ++++ b/src/plugins/ureport.conf +@@ -1,5 +1,5 @@ + # Base URL to uReport server +-# URL = https://retrace.fedoraproject.org/faf ++# URL = https://bug-report.redhat.com + + # no means that ssl certificates will not be checked + # SSLVerify = no +-- +2.17.1 + diff --git a/SOURCES/0028-dirsize-Skip-dirs-in-which-sosreport-is-being-genera.patch b/SOURCES/0028-dirsize-Skip-dirs-in-which-sosreport-is-being-genera.patch new file mode 100644 index 0000000..1b6378b --- /dev/null +++ b/SOURCES/0028-dirsize-Skip-dirs-in-which-sosreport-is-being-genera.patch @@ -0,0 +1,41 @@ +From 0b37412bc975d6e043c34dbff379029fd94a1758 Mon Sep 17 00:00:00 2001 +From: Martin Kutlak <mkutlak@redhat.com> +Date: Wed, 14 Aug 2019 14:46:08 +0000 +Subject: [PATCH] dirsize: Skip dirs in which sosreport is being generated + +With these changes ABRT will skip directories in which sosreport is running +and won't delete them when MaxCrashReportSize limit is exceeded. + +I had a concern about the size of the logs that sosreport collects but +there is a limit set by sosreport for how big the individual logs can +be and the default value is 25MiB. + +Fixes: rhbz#1671232 + +Signed-off-by: Martin Kutlak <mkutlak@redhat.com> + + +(cherry picked from commit eef59d2358cf63338f38727c5d08be70619e4e55) +--- + src/lib/dirsize.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/lib/dirsize.c b/src/lib/dirsize.c +index 6d96e71..7ee9752 100644 +--- a/src/lib/dirsize.c ++++ b/src/lib/dirsize.c +@@ -91,6 +91,11 @@ double get_dirsize_find_largest_dir( + if (dot_or_dotdot(ep->d_name)) + continue; + char *dname = concat_path_file(pPath, ep->d_name); ++ if (lstat(concat_path_file(dname, "sosreport.log"), &statbuf) == 0) ++ { ++ log_debug("Skipping %s': sosreport is being generated.", dname); ++ goto next; ++ } + if (lstat(dname, &statbuf) != 0) + { + goto next; +-- +2.26.0 + diff --git a/SOURCES/0029-setgid-instead-of-setuid-the-abrt-action-install-deb.patch b/SOURCES/0029-setgid-instead-of-setuid-the-abrt-action-install-deb.patch new file mode 100644 index 0000000..5459a8f --- /dev/null +++ b/SOURCES/0029-setgid-instead-of-setuid-the-abrt-action-install-deb.patch @@ -0,0 +1,101 @@ +From 0641129e214fa1cd2a67740c3193944285781819 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Miroslav=20Such=C3=BD?= <msuchy@redhat.com> +Date: Wed, 6 May 2020 19:10:48 +0200 +Subject: [PATCH] setgid instead of setuid the + abrt-action-install-debuginfo-to-abrt-cache [RHBZ 1796245] + +This is called by abrt-action-install-debuginfo-to-abrt-cache which used to be setuid and now is setgid binary. +Therefore we do not need to setuid and we neither need it. + +Resolves: +https://bugzilla.redhat.com/show_bug.cgi?id=1796245 +--- + src/client-python/reportclient/debuginfo.py | 25 +++++++++------------ + 1 file changed, 11 insertions(+), 14 deletions(-) + +diff --git a/src/client-python/reportclient/debuginfo.py b/src/client-python/reportclient/debuginfo.py +index 561de52f..560629cc 100644 +--- a/src/client-python/reportclient/debuginfo.py ++++ b/src/client-python/reportclient/debuginfo.py +@@ -35,41 +35,38 @@ from reportclient import (_, log1, log2, RETURN_OK, RETURN_FAILURE, + error_msg) + + +-def ensure_abrt_uid(fn): ++def ensure_abrt_gid(fn): + """ +- Ensures that the function is called using abrt's uid and gid ++ Ensures that the function is called using abrt's gid + + Returns: + Either an unchanged function object or a wrapper function object for + the function. + """ + +- current_uid = os.getuid() + current_gid = os.getgid() + abrt = pwd.getpwnam("abrt") + + # if we're are already running as abrt, don't do anything +- if abrt.pw_uid == current_uid and abrt.pw_gid == current_gid: ++ if abrt.pw_gid == current_gid: + return fn + + def wrapped(*args, **kwargs): + """ + Wrapper function around the called function. + +- Sets up uid and gid to match abrt's and after the function finishes +- rolls its uid and gid back. ++ Sets up gid to match abrt's and after the function finishes ++ rolls its gid back. + + Returns: + Return value of the wrapped function. + """ + +- # switch to abrt ++ # switch to abrt group + os.setegid(abrt.pw_gid) +- os.seteuid(abrt.pw_uid) + # extract the files as abrt:abrt + retval = fn(*args, **kwargs) + # switch back to whatever we were +- os.seteuid(current_uid) + os.setegid(current_gid) + return retval + +@@ -79,7 +76,7 @@ def ensure_abrt_uid(fn): + # TODO: unpack just required debuginfo and not entire rpm? + # ..that can lead to: foo.c No such file and directory + # files is not used... +-@ensure_abrt_uid ++@ensure_abrt_gid + def unpack_rpm(package_full_path, files, tmp_dir, destdir, exact_files=False): + """ + Unpacks a single rpm located in tmp_dir into destdir. +@@ -265,7 +262,7 @@ class DebugInfoDownload(object): + else: + print("ERR: unmute called without mute?") + +- @ensure_abrt_uid ++ @ensure_abrt_gid + def setup_tmp_dirs(self): + if not os.path.exists(self.tmpdir): + try: +@@ -406,9 +403,9 @@ class DebugInfoDownload(object): + + s = os.stat(self.cachedir) + abrt = pwd.getpwnam("abrt") +- if (s.st_uid != abrt.pw_uid) or (s.st_gid != abrt.pw_gid): +- print(_("'{0}' must be owned by abrt. " +- "Please run '# chown -R abrt.abrt {0}' " ++ if s.st_gid != abrt.pw_gid: ++ print(_("'{0}' must be owned by group abrt. " ++ "Please run '# chown -R :abrt {0}' " + "to fix the issue.").format(self.cachedir)) + + clean_up(self.tmpdir) +-- +2.21.3 + diff --git a/SOURCES/0030-ureport-Drop-Strata-integration.patch b/SOURCES/0030-ureport-Drop-Strata-integration.patch new file mode 100644 index 0000000..5a03fd3 --- /dev/null +++ b/SOURCES/0030-ureport-Drop-Strata-integration.patch @@ -0,0 +1,952 @@ +From 646101d558765b59bae94aa27bfbefed3a085ab5 Mon Sep 17 00:00:00 2001 +From: Ernestas Kulik <ekulik@redhat.com> +Date: Tue, 2 Jun 2020 10:57:36 +0200 +Subject: [PATCH] ureport: Drop Strata integration + +Strata is being sunset with no replacement for our used API endpoints in +sight. This commit drops the integration code, because no one pretty +much wants it, either. +--- + configure.ac | 11 -- + doc/reporter-rhtsupport.txt | 17 -- + doc/reporter-ureport.txt | 8 - + src/include/ureport.h | 4 +- + src/lib/ureport.c | 138 +-------------- + src/plugins/Makefile.am | 6 - + src/plugins/cert-api.access.redhat.com.pem | 74 -------- + src/plugins/report_RHTSupport.xml.in | 5 - + src/plugins/reporter-rhtsupport.c | 186 +-------------------- + src/plugins/ureport.conf | 4 - + tests/ureport.at | 174 ------------------- + tests/ureport/rhsm/__init__.py | 0 + tests/ureport/rhsm/config.py | 8 - + 13 files changed, 7 insertions(+), 628 deletions(-) + delete mode 100644 src/plugins/cert-api.access.redhat.com.pem + delete mode 100644 tests/ureport/rhsm/__init__.py + delete mode 100644 tests/ureport/rhsm/config.py + +diff --git a/configure.ac b/configure.ac +index ce45389..ef35f84 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -172,17 +172,6 @@ do + done + fi dnl end NO_MANTISBT + +-dnl enable import of certificate for rhtsupport plugin +-AC_ARG_ENABLE([import-rhtsupport-cert], +-AS_HELP_STRING([--enable-import-rhtsupport-cert], +- [import certificate needed for rhtsupport plugin (default is NO)]), +-[], [enable_import_rhtsupport_cert="no"]) +- +-AS_IF([test "x$enable_import_rhtsupport_cert" != "xno"], +-AM_CONDITIONAL(ENABLE_IMPORT_RHTSUPPORT_CERT, true), +-AM_CONDITIONAL(ENABLE_IMPORT_RHTSUPPORT_CERT, false)) +- +- + AC_ARG_WITH(python2, + AS_HELP_STRING([--with-python2],[use python2 (default is YES)]), + LIBREPORT_PARSE_WITH([python2])) +diff --git a/doc/reporter-rhtsupport.txt b/doc/reporter-rhtsupport.txt +index e52a152..132c0ea 100644 +--- a/doc/reporter-rhtsupport.txt ++++ b/doc/reporter-rhtsupport.txt +@@ -18,9 +18,6 @@ DESCRIPTION + The tool reads problem directory DIR. Then it logs in to RHTSupport + and creates a new case. + +-The tool can be configured to submit an uReport to RHTSupport together with +-creating a new case. +- + The URL to new case is printed to stdout and recorded in 'reported_to' + element in DIR. + +@@ -36,10 +33,6 @@ to enter case ID to which you want to upload the FILEs. + Option -tCASE uploads FILEs to the case CASE on RHTSupport site. + -d DIR is ignored. + +-Option -u uploads uReport along with creating a new case. uReport configuration +-is loaded from UR_CONFFILE which defaults to +-/etc/libreport/plugins/ureport.conf. +- + Configuration file + ~~~~~~~~~~~~~~~~~~ + Configuration file lines should have 'PARAM = VALUE' format. The parameters are: +@@ -56,10 +49,6 @@ Configuration file lines should have 'PARAM = VALUE' format. The parameters are: + 'SSLVerify':: + Use yes/true/on/1 to verify server's SSL certificate. (default: yes) + +-'SubmitUReport':: +- Use yes/true/on/1 to enable submitting uReport together wit creating a new +- case. (default: no) +- + Parameters can be overridden via $RHTSupport_PARAM environment variables. + + Integration with ABRT events +@@ -84,12 +73,6 @@ OPTIONS + -t[ID]:: + Upload FILEs to the already created case on RHTSupport site. + +--u:: +- Submit uReport together with creating a new case. +- +--C UR_CONFFILE:: +- Configuration file for submitting uReports. +- + -F CONF_FORMAT_FILE:: + Formatting file for a new case. + +diff --git a/doc/reporter-ureport.txt b/doc/reporter-ureport.txt +index 7deb911..fc06541 100644 +--- a/doc/reporter-ureport.txt ++++ b/doc/reporter-ureport.txt +@@ -34,10 +34,6 @@ Configuration file lines should have 'PARAM = VALUE' format. The parameters are: + + Possible values are: + +- 'rhsm';; +- Uses the system V3 entitlement certificate that is used for Red Hat +- subscription management. +- + 'puppet';; + Uses the certificate that is used by the Puppet configuration management tool. + +@@ -51,10 +47,6 @@ Configuration file lines should have 'PARAM = VALUE' format. The parameters are: + + Possible values are:: + +- 'rhts-credentials';; +- Uses Login= and Password= values from /etc/libreport/plugins/rhtsupport.conf and +- user's local ~/.config/libreport/rhtsupport.conf. +- + '<user_name>:<password>';; + Manually supply credentials. + +diff --git a/src/include/ureport.h b/src/include/ureport.h +index 63d9bf2..2e6de49 100644 +--- a/src/include/ureport.h ++++ b/src/include/ureport.h +@@ -115,8 +115,7 @@ ureport_server_config_set_url(struct ureport_server_config *config, + * Configure client certificate paths + * + * @param config Where the paths are stored +- * @param client_path Path in form of cert_full_path:key_full_path or one of +- * the following string: 'rhsm', 'puppet'. ++ * @param client_path Path in form of cert_full_path:key_full_path or 'puppet'. + */ + #define ureport_server_config_set_client_auth libreport_ureport_server_config_set_client_auth + void +@@ -139,7 +138,6 @@ ureport_server_config_set_basic_auth(struct ureport_server_config *config, + * Configure user name and password for HTTP Basic authentication according to + * user preferences. + * +- * "rhts-credentials" - Uses Login= and Password= from rhtsupport.conf + * "<user_name>:<password>" - Manually supply user name and password. + * "<user_name>" - Manually supply user name and be asked for password. + * +diff --git a/src/lib/ureport.c b/src/lib/ureport.c +index ced4810..5d0a820 100644 +--- a/src/lib/ureport.c ++++ b/src/lib/ureport.c +@@ -30,19 +30,6 @@ + + #define BTHASH_URL_SFX "reports/bthash/" + +-#define RHSM_WEB_SERVICE_URL "https://cert-api.access.redhat.com/rs/telemetry/abrt" +- +-#define RHSMCON_PEM_DIR_PATH "/etc/pki/consumer" +-#define RHSMCON_CERT_NAME "cert.pem" +-#define RHSMCON_KEY_NAME "key.pem" +- +-/* Using the same template as for RHSM certificate, macro for cert dir path and +- * macro for cert name. Cert path can be easily modified for example by reading +- * an environment variable LIBREPORT_DEBUG_AUTHORITY_CERT_DIR_PATH +- */ +-#define CERT_AUTHORITY_CERT_PATH "/etc/libreport" +-#define CERT_AUTHORITY_CERT_NAME "cert-api.access.redhat.com.pem" +- + static char * + puppet_config_print(const char *key) + { +@@ -73,55 +60,6 @@ ureport_server_config_set_url(struct ureport_server_config *config, + config->ur_url = server_url; + } + +-static char * +-rhsm_config_get_consumer_cert_dir(void) +-{ +- char *result = getenv("LIBREPORT_DEBUG_RHSMCON_PEM_DIR_PATH"); +- if (result != NULL) +- return xstrdup(result); +- +- result = run_in_shell_and_save_output(0, +- "python3 -c \"from rhsm.config import initConfig; print(initConfig().get('rhsm', 'consumerCertDir'))\"", +- NULL, NULL); +- +- /* run_in_shell_and_save_output always returns non-NULL */ +- if (result[0] != '/') +- goto error; +- +- char *newline = strchrnul(result, '\n'); +- if (!newline) +- goto error; +- +- *newline = '\0'; +- return result; +-error: +- free(result); +- error_msg("Failed to get 'rhsm':'consumerCertDir' from rhsm.config python module. Using "RHSMCON_PEM_DIR_PATH); +- return xstrdup(RHSMCON_PEM_DIR_PATH); +-} +- +-static bool +-certificate_exist(char *cert_name) +-{ +- if (access(cert_name, F_OK) != 0) +- { +- log_notice("RHSM consumer certificate '%s' does not exist.", cert_name); +- return false; +- } +- return true; +-} +- +-static bool +-cert_authority_cert_exist(char *cert_name) +-{ +- if (access(cert_name, F_OK) != 0) +- { +- log_notice("Certs validating the server '%s' does not exist.", cert_name); +- return false; +- } +- return true; +-} +- + void + ureport_server_config_set_client_auth(struct ureport_server_config *config, + const char *client_auth) +@@ -139,52 +77,6 @@ ureport_server_config_set_client_auth(struct ureport_server_config *config, + + log_notice("Not using client authentication"); + } +- else if (strcmp(client_auth, "rhsm") == 0) +- { +- if (config->ur_url == NULL) +- ureport_server_config_set_url(config, xstrdup(RHSM_WEB_SERVICE_URL)); +- +- /* always returns non-NULL */ +- char *rhsm_dir = rhsm_config_get_consumer_cert_dir(); +- +- char *cert_full_name = concat_path_file(rhsm_dir, RHSMCON_CERT_NAME); +- char *key_full_name = concat_path_file(rhsm_dir, RHSMCON_KEY_NAME); +- +- /* get authority certificate dir path from environment variable, if it +- * is not set, use CERT_AUTHORITY_CERT_PATH +- */ +- const char *authority_cert_dir_path = getenv("LIBREPORT_DEBUG_AUTHORITY_CERT_DIR_PATH"); +- if (authority_cert_dir_path == NULL) +- authority_cert_dir_path = CERT_AUTHORITY_CERT_PATH; +- +- char *cert_authority_cert_full_name = concat_path_file(authority_cert_dir_path, +- CERT_AUTHORITY_CERT_NAME); +- +- if (certificate_exist(cert_full_name) && certificate_exist(key_full_name)) +- { +- config->ur_client_cert = cert_full_name; +- config->ur_client_key = key_full_name; +- log_debug("Using cert files: '%s' : '%s'", config->ur_client_cert, config->ur_client_key); +- } +- else +- { +- free(cert_full_name); +- free(key_full_name); +- log_notice("Using the default configuration for uReports."); +- } +- +- if (cert_authority_cert_exist(cert_authority_cert_full_name)) +- { +- config->ur_cert_authority_cert = cert_authority_cert_full_name; +- log_debug("Using validating server cert: '%s'", config->ur_cert_authority_cert); +- } +- else +- { +- free(cert_authority_cert_full_name); +- } +- +- free(rhsm_dir); +- } + else if (strcmp(client_auth, "puppet") == 0) + { + config->ur_client_cert = puppet_config_print("hostcert"); +@@ -241,32 +133,12 @@ ureport_server_config_load_basic_auth(struct ureport_server_config *config, + const char *username = NULL; + const char *password = NULL; + +- if (strcmp(http_auth_pref, "rhts-credentials") == 0) +- { +- settings = new_map_string(); +- +- char *local_conf = xasprintf("%s"USER_HOME_CONFIG_PATH"/rhtsupport.conf", getenv("HOME")); +- +- if (!load_plugin_conf_file("rhtsupport.conf", settings, /*skip key w/o values:*/ false) && +- !load_conf_file(local_conf, settings, /*skip key w/o values:*/ false)) +- error_msg_and_die("Could not get RHTSupport credentials"); +- free(local_conf); +- +- username = get_map_string_item_or_NULL(settings, "Login"); +- password = get_map_string_item_or_NULL(settings, "Password"); +- +- if (config->ur_url == NULL) +- ureport_server_config_set_url(config, xstrdup(RHSM_WEB_SERVICE_URL)); +- } +- else +- { +- username = tmp_username = xstrdup(http_auth_pref); +- password = strchr(tmp_username, ':'); ++ username = tmp_username = xstrdup(http_auth_pref); ++ password = strchr(tmp_username, ':'); + +- if (password != NULL) +- /* It is "char *", see strchr() few lines above. */ +- *((char *)(password++)) = '\0'; +- } ++ if (password != NULL) ++ /* It is "char *", see strchr() few lines above. */ ++ *((char *)(password++)) = '\0'; + + if (password == NULL) + { +diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am +index b228602..f73e7dc 100644 +--- a/src/plugins/Makefile.am ++++ b/src/plugins/Makefile.am +@@ -28,12 +28,6 @@ pluginsconfdir = $(PLUGINS_CONF_DIR) + + reportpluginsconfdir = $(REPORT_PLUGINS_CONF_DIR) + +-if ENABLE_IMPORT_RHTSUPPORT_CERT +-libreportconfdir = $(CONF_DIR) +-dist_libreportconf_DATA = \ +- cert-api.access.redhat.com.pem +-endif +- + reporters_plugin_conf = + reporters_plugin_format_conf = + if BUILD_BUGZILLA +diff --git a/src/plugins/cert-api.access.redhat.com.pem b/src/plugins/cert-api.access.redhat.com.pem +deleted file mode 100644 +index 20ef8c0..0000000 +--- a/src/plugins/cert-api.access.redhat.com.pem ++++ /dev/null +@@ -1,74 +0,0 @@ +------BEGIN CERTIFICATE----- +-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 +-Kg6Ay0rrsi4nw1JHue2GvdjdfVOaWSWC +------END CERTIFICATE----- +------BEGIN CERTIFICATE----- +-MIIFfTCCA2WgAwIBAgIJAJGKz8qFAAADMA0GCSqGSIb3DQEBBQUAMIGwMQswCQYD +-VQQGEwJVUzEXMBUGA1UECAwOTm9ydGggQ2Fyb2xpbmExEDAOBgNVBAcMB1JhbGVp +-Z2gxFjAUBgNVBAoMDVJlZCBIYXQsIEluYy4xGDAWBgNVBAsMD1JlZCBIYXQgTmV0 +-d29yazEeMBwGA1UEAwwVRW50aXRsZW1lbnQgTWFzdGVyIENBMSQwIgYJKoZIhvcN +-AQkBFhVjYS1zdXBwb3J0QHJlZGhhdC5jb20wHhcNMTUwNTA1MTMwMzQ4WhcNMjUw +-NTAyMTMwMzQ4WjCBiTELMAkGA1UEBhMCVVMxFzAVBgNVBAgTDk5PUlRIIENBUk9M +-SU5BMRAwDgYDVQQHEwdSYWxlaWdoMRAwDgYDVQQKEwdSZWQgSGF0MRgwFgYDVQQL +-Ew9SZWQgSGF0IE5ldHdvcmsxIzAhBgNVBAMTGmNlcnQtYXBpLmFjY2Vzcy5yZWRo +-YXQuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9hTNMtZMa7Kg +-Jlux6pnuUinP0Rv0aiiPFr7qNHFore4loGrPlpzUvQbUByy3xm7lhf4R4qbINCls +-veWg6HDidvQr174RXb5YLMXuBrYAiPWQTrRRLNuvXFHKzREghRWTv48IXTIDEo0G +-fZJUO+myY2RfwqugZKic5dR6ZakHSSpQO70O6H5R0eHlKa13k4eEpG2fVY/xqFto +-WkfZyEmSacZpqxp7gIjZqreLc4MFwpiVjGFrK3Jk+Px1Z6J94LTLx2SxrYzWIeUs +-5j+lceQOvpV4/pkClnRCW1pkCKTccjFKQkpNPGwdIusRXUGl9IYc20Fa/7g9iUQc +-5fXu9EAzfwIDAQABo4G+MIG7MAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgZA +-MAsGA1UdDwQEAwIF4DATBgNVHSUEDDAKBggrBgEFBQcDATA5BglghkgBhvhCAQ0E +-LBYqTWFuYWdlZCBieSBSZWQgSGF0IChjYS1zdXBwb3J0QHJlZGhhdC5jb20pMB0G +-A1UdDgQWBBRfgCjd8aXf0U4VX8DKTVIn+paGBzAfBgNVHSMEGDAWgBSIS6ZFxEbs +-j9bPpvYazyY8kMx/FzANBgkqhkiG9w0BAQUFAAOCAgEAlC+r6UEEp5BUkI0Rj2T+ +-1PH7oUCaGQeQoyVbGddz/WUcBk/lMMtyCEoxU+3tTwNWmCWWjYXtjoL9MlSAC/q+ +-NZfBi1iq0uuSus9JI/Uu8aRhoxTK56qGRed/JNixOHEmFn891cahIPpF0exWwtYD +-ThwXo7Z6PI7t8EMKdSrGTOowp58yho8xYFL/Z7JmjL55Pf85GIrdiniNZd4i178J +-07R9zsiLvdXq9mT33iJwkm+uhO+FA9d8OE3ji21pBbGUAQSWOdkemvUCsy8zANW9 +-fT+dBrMr5Buk7eaBBJ2PxECNiWLCRQJWmyff1O5zMT0daS2lBdEGUNhBZ0hnX13Q +-kabUp0bxRrNRq+WkomP7onZhfZS6SjKm0UmwoV6o3V1ED6y7muQNRmgDpA5PcbvO +-gl7OexNL4zcpyfMdAmTYf5yTRSvB42Yg5hVfuzPEnOIqupwES3mWkEHRlqbMUkHw +-qIQAxIwQqZd5PdPpElQ/6j/ZT9DwW/I6zgndX2rsS0oGYcwFTkSj0/rKKkC13hk7 +-LchXMZu5ckdustM79U6OZIBairrJaL2OpR08un2nwIjgEGqhVFYc44UK1VpkE8mr +-qvqJS6OHVlTlKcEDnhVkPS3i5qjuS/PtSq0CwH8bzYKFJayLDY/z36Zv6PdttzmU +-Yb1NSDcJejHJ80pMINutyYQ= +------END CERTIFICATE----- +diff --git a/src/plugins/report_RHTSupport.xml.in b/src/plugins/report_RHTSupport.xml.in +index 357a94d..c64cb55 100644 +--- a/src/plugins/report_RHTSupport.xml.in ++++ b/src/plugins/report_RHTSupport.xml.in +@@ -26,11 +26,6 @@ + <allow-empty>no</allow-empty> + </option> + <advanced-options> +- <option type="bool" name="RHTSupport_SubmitUReport"> +- <_label>Submit uReport</_label> +- <_note-html>Submit <a href="https://access.redhat.com/articles/642323">micro-report</a> when creating a new case. </_note-html> +- <default-value>yes</default-value> +- </option> + <option type="text" name="RHTSupport_URL"> + <_label>RH Portal URL</_label> + <allow-empty>no</allow-empty> +diff --git a/src/plugins/reporter-rhtsupport.c b/src/plugins/reporter-rhtsupport.c +index d11b4bd..411bffc 100644 +--- a/src/plugins/reporter-rhtsupport.c ++++ b/src/plugins/reporter-rhtsupport.c +@@ -222,96 +222,6 @@ ret_clean: + return retval; + } + +-static +-struct ureport_server_response *ureport_do_post_credentials(const char *json, struct ureport_server_config *config, const char *action) +-{ +- struct post_state *post_state = NULL; +- while (1) +- { +- post_state = ureport_do_post(json, config, action); +- +- if (post_state == NULL) +- { +- error_msg(_("Failed on submitting the problem")); +- return NULL; +- } +- +- if (post_state->http_resp_code != 401) +- break; +- +- free_post_state(post_state); +- +- char *login = NULL; +- char *password = NULL; +- ask_rh_credentials(&login, &password); +- ureport_server_config_set_basic_auth(config, login, password); +- free(password); +- free(login); +- } +- +- struct ureport_server_response *resp = ureport_server_response_from_reply(post_state, config); +- free(post_state); +- return resp; +-} +- +-static +-char *submit_ureport(const char *dump_dir_name, struct ureport_server_config *conf) +-{ +- struct dump_dir *dd = dd_opendir(dump_dir_name, DD_OPEN_READONLY); +- if (dd == NULL) +- return NULL; +- +- report_result_t *rr_bthash = find_in_reported_to(dd, "uReport"); +- dd_close(dd); +- +- if (rr_bthash != NULL) +- { +- log_notice("uReport has already been submitted."); +- char *ret = xstrdup(rr_bthash->bthash); +- free_report_result(rr_bthash); +- return ret; +- } +- +- char *json = ureport_from_dump_dir(dump_dir_name); +- if (json == NULL) +- { +- log_notice(_("Failed to generate microreport from the problem data")); +- return NULL; +- } +- +- struct ureport_server_response *resp = ureport_do_post_credentials(json, conf, UREPORT_SUBMIT_ACTION); +- free(json); +- if (resp == NULL) +- return NULL; +- +- char *bthash = NULL; +- if (!resp->urr_is_error) +- { +- if (resp->urr_bthash != NULL) +- bthash = xstrdup(resp->urr_bthash); +- +- ureport_server_response_save_in_dump_dir(resp, dump_dir_name, conf); +- +- if (resp->urr_message) +- log_warning("%s", resp->urr_message); +- } +- else if (g_verbose > 2) +- error_msg(_("Server responded with an error: '%s'"), resp->urr_value); +- +- ureport_server_response_free(resp); +- return bthash; +-} +- +-static +-void attach_to_ureport(struct ureport_server_config *conf, +- const char *bthash, const char *attach_id, const char *data) +-{ +- char *json = ureport_json_attachment_new(bthash, attach_id, data); +- struct ureport_server_response *resp = ureport_do_post_credentials(json, conf, UREPORT_ATTACH_ACTION); +- ureport_server_response_free(resp); +- free(json); +-} +- + static + bool check_for_hints(const char *url, char **login, char **password, bool ssl_verify, const char *tempfile) + { +@@ -420,42 +330,6 @@ char *get_param_string(const char *name, map_string_t *settings, const char *dfl + return xstrdup(envvar ? envvar : (get_map_string_item_or_NULL(settings, name) ? : dflt)); + } + +-static +-void prepare_ureport_configuration(const char *urcfile, +- map_string_t *settings, struct ureport_server_config *urconf, +- const char *portal_url, const char *login, const char *password, bool ssl_verify) +-{ +- load_conf_file(urcfile, settings, false); +- ureport_server_config_init(urconf); +- +- /* The following lines cause that we always use URL from ureport's +- * configuration becuase the GUI reporter always exports uReport_URL env +- * var. +- * +- * char *url = NULL; +- * UREPORT_OPTION_VALUE_FROM_CONF(settings, "URL", url, xstrdup); +- * if (url != NULL) +- * ureport_server_config_set_url(urconf, url); +- */ +- +- ureport_server_config_set_url(urconf, concat_path_file(portal_url, "/telemetry/abrt")); +- urconf->ur_ssl_verify = ssl_verify; +- +- ureport_server_config_set_basic_auth(urconf, login, password); +- +- bool include_auth = true; +- UREPORT_OPTION_VALUE_FROM_CONF(settings, "IncludeAuthData", include_auth, string_to_bool); +- +- if (include_auth) +- { +- const char *auth_items = NULL; +- UREPORT_OPTION_VALUE_FROM_CONF(settings, "AuthDataItems", auth_items, (const char *)); +- urconf->ur_prefs.urp_auth_items = parse_list(auth_items); +- } +- +- urconf->ur_prefs.urp_flags |= UREPORT_PREF_FLAG_RETURN_ON_FAILURE; +-} +- + static char *create_case_url(char *url, const char *case_no) + { + char *url1 = concat_path_file(url, RHTSUPPORT_CASE_URL_PATH); +@@ -496,7 +370,6 @@ int main(int argc, char **argv) + const char *dump_dir_name = "."; + const char *case_no = NULL; + GList *conf_file = NULL; +- const char *urconf_file = UREPORT_CONF_FILE_PATH; + const char *fmt_file = NULL; + + /* Can't keep these strings/structs static: _() doesn't support that */ +@@ -524,10 +397,6 @@ int main(int argc, char **argv) + "\n" + "Option -tCASE uploads FILEs to the case CASE on RHTSupport site.\n" + "-d DIR is ignored.\n" +- "\n" +- "Option -u sends ABRT crash statistics data (uReport) before creating a new case.\n" +- "uReport configuration is loaded from UR_CONFFILE which defaults to\n" +- UREPORT_CONF_FILE_PATH".\n" + ); + enum { + OPT_v = 1 << 0, +@@ -547,8 +416,6 @@ int main(int argc, char **argv) + OPT_LIST( 'c', NULL, &conf_file , "FILE", _("Configuration file (may be given many times)")), + OPT_OPTSTRING('t', NULL, &case_no , "ID" , _("Upload FILEs [to case with this ID]")), + OPT_BOOL( 'f', NULL, NULL , _("Force reporting even if this problem is already reported")), +- OPT_BOOL( 'u', NULL, NULL , _("Submit uReport before creating a new case")), +- OPT_STRING( 'C', NULL, &urconf_file , "FILE", _("Configuration file for uReport")), + OPT_STRING( 'F', NULL, &fmt_file , "FILE", _("Formatting file for a new case")), + OPT_BOOL( 'D', NULL, NULL , _("Debug")), + OPT_END() +@@ -607,22 +474,10 @@ int main(int argc, char **argv) + /* RH has a 250m limit for web attachments (as of 2013) */ + envvar ? envvar : (get_map_string_item_or_NULL(settings, "BigSizeMB") ? : "200") + ); +- envvar = getenv("RHTSupport_SubmitUReport"); +- bool submit_ur = string_to_bool( +- envvar ? envvar : +- (get_map_string_item_or_NULL(settings, "SubmitUReport") ? : +- ((opts & OPT_u) ? "1" : "0")) +- ); ++ + free_map_string(settings); + + char *base_api_url = xstrdup(url); +- char *bthash = NULL; +- +- map_string_t *ursettings = new_map_string(); +- struct ureport_server_config urconf; +- +- prepare_ureport_configuration(urconf_file, ursettings, &urconf, +- url, login, password, ssl_verify); + + if (opts & OPT_t) + { +@@ -697,17 +552,6 @@ int main(int argc, char **argv) + return 0; + } + free_report_result(reported_to); +- +- if (submit_ur) +- { +- log_warning(_("Sending ABRT crash statistics data")); +- +- bthash = submit_ureport(dump_dir_name, &urconf); +- +- /* Ensure that we will use the updated credentials */ +- STRCPY_IF_NOT_EQUAL(login, urconf.ur_username); +- STRCPY_IF_NOT_EQUAL(password, urconf.ur_password); +- } + } + + problem_data_t *problem_data = create_problem_data_for_reporting(dump_dir_name); +@@ -930,30 +774,6 @@ int main(int argc, char **argv) + } + /* else: error msg was already emitted by dd_opendir */ + +- if (bthash) +- { +- log_warning(_("Linking ABRT crash statistics record with the case")); +- +- /* Make sure we use the current credentials */ +- ureport_server_config_set_basic_auth(&urconf, login, password); +- +- /* Attach Customer Case ID*/ +- attach_to_ureport(&urconf, bthash, "RHCID", result->url); +- +- /* Attach Contact e-mail if configured */ +- const char *email = NULL; +- UREPORT_OPTION_VALUE_FROM_CONF(ursettings, "ContactEmail", email, (const char *)); +- if (email != NULL) +- { +- log_warning(_("Linking ABRT crash statistics record with contact email: '%s'"), email); +- attach_to_ureport(&urconf, bthash, "email", email); +- } +- +- /* Update the credentials */ +- STRCPY_IF_NOT_EQUAL(login, urconf.ur_username); +- STRCPY_IF_NOT_EQUAL(password, urconf.ur_password); +- } +- + url = result->url; + result->url = NULL; + free_rhts_result(result); +@@ -1021,10 +841,6 @@ int main(int argc, char **argv) + free_rhts_result(result_atch); + free_rhts_result(result); + +- ureport_server_config_destroy(&urconf); +- free_map_string(ursettings); +- free(bthash); +- + free(base_api_url); + free(url); + free(login); +diff --git a/src/plugins/ureport.conf b/src/plugins/ureport.conf +index 04dc100..11f4531 100644 +--- a/src/plugins/ureport.conf ++++ b/src/plugins/ureport.conf +@@ -22,8 +22,6 @@ + # 'IncludeAuthData' to 'yes'. + # None (default): + # SSLClientAuth = +-# Using RH subscription management consumer certificate: +-# SSLClientAuth = rhsm + # Using Puppet certificate: + # SSLClientAuth = puppet + # Using custom certificate: +@@ -32,8 +30,6 @@ + # HTTP Basic authentication credentials. + # Assingning any value to 'HTTPAuth' changes the default value of + # 'IncludeAuthData' to 'yes'. +-# Use Login= and Password= from /etc/libreport/plugins/rhtsupport.conf: +-# HTTPAuth = rhts-credentials + # Use username and password: + # HTTPAuth = username:password + +diff --git a/tests/ureport.at b/tests/ureport.at +index ecaa3dd..51ca0c2 100644 +--- a/tests/ureport.at ++++ b/tests/ureport.at +@@ -250,73 +250,6 @@ int main(void) + ureport_server_config_destroy(&config); + free_map_string(settings); + +- /* value from env */ +- /* HTTPAuth set to 'username:password' */ +- /* SSLClientAuth set to 'rhsm' */ +- ureport_server_config_init(&config); +- +- settings = new_map_string(); +- +- setenv("uReport_SSLClientAuth", "rhsm", 1); +- setenv("uReport_HTTPAuth", "username:password", 1); +- setenv("uReport_AuthDataItems", "hostname, time", 1); +- +- setenv("LIBREPORT_DEBUG_RHSMCON_PEM_DIR_PATH", TESTING_CERTS_CORRECT_DIR_PATH, 1); +- +- ureport_server_config_load(&config, settings); +- +- assert(strcmp(config.ur_username, "username") == 0); +- assert(strcmp(config.ur_password, "password") == 0); +- +- assert(config.ur_client_cert == NULL); +- assert(config.ur_client_key == NULL); +- assert(size_map_string(config.ur_http_headers) == 0); +- +- l = config.ur_prefs.urp_auth_items; +- assert(strcmp(l->data, "hostname") == 0); +- assert(strcmp(l->next->data, "time") == 0); +- +- unsetenv("LIBREPORT_DEBUG_RHSMCON_PEM_DIR_PATH"); +- +- unsetenv("uReport_SSLClientAuth"); +- unsetenv("uReport_HTTPAuth"); +- unsetenv("uReport_AuthDataItems"); +- +- free_map_string(settings); +- +- ureport_server_config_destroy(&config); +- +- /* value from settings */ +- /* HTTPAuth set to 'username:password' */ +- /* SSLClientAuth set to 'rhsm' */ +- ureport_server_config_init(&config); +- +- settings = new_map_string(); +- insert_map_string(settings, xstrdup("SSLClientAuth"), xstrdup("rhsm")); +- insert_map_string(settings, xstrdup("HTTPAuth"), xstrdup("rhn-username:rhn-password")); +- insert_map_string(settings, xstrdup("AuthDataItems"), xstrdup("hostname, type")); +- +- setenv("LIBREPORT_DEBUG_RHSMCON_PEM_DIR_PATH", TESTING_CERTS_CORRECT_DIR_PATH, 1); +- +- ureport_server_config_load(&config, settings); +- +- assert(strcmp(config.ur_username, "rhn-username") == 0); +- assert(strcmp(config.ur_password, "rhn-password") == 0); +- +- assert(config.ur_client_cert == NULL); +- assert(config.ur_client_key == NULL); +- assert(size_map_string(config.ur_http_headers) == 0); +- +- l = config.ur_prefs.urp_auth_items; +- assert(strcmp(l->data, "hostname") == 0); +- assert(strcmp(l->next->data, "type") == 0); +- +- unsetenv("LIBREPORT_DEBUG_RHSMCON_PEM_DIR_PATH"); +- +- free_map_string(settings); +- +- ureport_server_config_destroy(&config); +- + return 0; + } + ]]) +@@ -366,7 +299,6 @@ AT_TESTFUN([ureport_server_config_set_client_auth], + #include <assert.h> + + #define DESTROYED_POINTER (void *)0xdeadbeef +-#define RHSM_WEB_SERVICE_URL "https://cert-api.access.redhat.com/rs/telemetry/abrt" + + #define TESTING_CERTS_CORRECT_DIR_PATH "../../ureport/certs/correct" + #define TESTING_CERTS_INCORRECT_ONLY_CERT_DIR_PATH "../../ureport/certs/only_cert" +@@ -374,10 +306,6 @@ AT_TESTFUN([ureport_server_config_set_client_auth], + #define TESTING_PYTHONPATH "../../ureport/" + #define WRONG_TESTING_PYTHONPATH "../../ureportxxxxxx/" + +-#define RHSMCON_PEM_DIR_PATH "/etc/pki/consumer" +-#define RHSMCON_CERT_NAME "cert.pem" +-#define RHSMCON_KEY_NAME "key.pem" +- + char *my_strdup(const char *str) + { + if (str == NULL) +@@ -500,52 +428,6 @@ int main(void) + + ureport_server_config_destroy(&config); + +- /* client_auth == rhsm */ +- /* ur_url == NULL */ +- /* no certs */ +- char *empty_cert_dir = mkdtemp(strdup("/tmp/cert_XXXXXX")); +- assert(empty_cert_dir); +- setenv("LIBREPORT_DEBUG_RHSMCON_PEM_DIR_PATH", empty_cert_dir, 1); +- +- int status = test_ureport_server_config_set_client_auth_exit_code_ext(&config, "rhsm", NULL, NULL); +- assert(status == 0); +- +- assert(rmdir(empty_cert_dir) == 0); +- +- /* client_auth == rhsm */ +- /* ur_url == NULL */ +- /* certs exists (only RHSMCON_CERT_NAME exists) */ +- +- setenv("LIBREPORT_DEBUG_RHSMCON_PEM_DIR_PATH", TESTING_CERTS_INCORRECT_ONLY_CERT_DIR_PATH, 1); +- +- status = test_ureport_server_config_set_client_auth_exit_code_ext(&config, "rhsm", NULL, NULL); +- assert(status == 0); +- +- /* client_auth == rhsm */ +- /* ur_url == NULL */ +- /* certs exists (only RHSMCON_KEY_NAME exists) */ +- +- setenv("LIBREPORT_DEBUG_RHSMCON_PEM_DIR_PATH", TESTING_CERTS_INCORRECT_ONLY_KEY_DIR_PATH, 1); +- +- status = test_ureport_server_config_set_client_auth_exit_code_ext(&config, "rhsm", NULL, NULL); +- assert(status == 0); +- +- /* client_auth == rhsm */ +- /* ur_url == NULL */ +- /* certs exists (correct) */ +- ureport_server_config_init(&config); +- +- setenv("LIBREPORT_DEBUG_RHSMCON_PEM_DIR_PATH", TESTING_CERTS_CORRECT_DIR_PATH, 1); +- +- ureport_server_config_set_client_auth(&config, "rhsm"); +- +- assert_ureport_server_config(&config, RHSM_WEB_SERVICE_URL, true, +- TESTING_CERTS_CORRECT_DIR_PATH"/cert.pem", +- TESTING_CERTS_CORRECT_DIR_PATH"/key.pem", +- NULL, NULL); +- +- ureport_server_config_destroy(&config); +- + /* client_auth == cert:key */ + /* ur_url == NULL */ + ureport_server_config_init(&config); +@@ -572,44 +454,6 @@ int main(void) + ret_val = test_ureport_server_config_set_client_auth_exit_code(&config, "cert"); + assert(ret_val != 0 && ret_val != -1); + +-/* rhsm_config_get_consumer_cert_dir */ +-/* certs exists (correct content) */ +- unsetenv("LIBREPORT_DEBUG_RHSMCON_PEM_DIR_PATH"); +- setenv("PYTHONPATH", TESTING_PYTHONPATH, 1); +- +- ureport_server_config_init(&config); +- ureport_server_config_set_client_auth(&config, "rhsm"); +- +- char *abs_path_cert = realpath(TESTING_CERTS_CORRECT_DIR_PATH"/cert.pem", NULL); +- char *abs_path_key = realpath(TESTING_CERTS_CORRECT_DIR_PATH"/key.pem", NULL); +- +- assert_ureport_server_config(&config, RHSM_WEB_SERVICE_URL, true, +- abs_path_cert, +- abs_path_key, +- NULL, NULL); +- free(abs_path_cert); +- free(abs_path_key); +- +- ureport_server_config_destroy(&config); +- +- /* python script fails, '/etc/pki/consumer' is returned */ +- +- /* set cert dir path to '/etc/pki/consumer' */ +- /* store return value of ureport_server_config_set_client_auth */ +- setenv("LIBREPORT_DEBUG_RHSMCON_PEM_DIR_PATH", RHSMCON_PEM_DIR_PATH, 1); +- +- int exp_ret_val = test_ureport_server_config_set_client_auth_exit_code(&config, "rhsm"); +- +- /* Do the same with unset LIBREPORT_DEBUG_RHSMCON_PEM_DIR_PATH and wrong PYTHONPATH */ +- /* function rhsm_config_get_consumer_cert_dir has to return RHSMCON_PEM_DIR_PATH */ +- unsetenv("LIBREPORT_DEBUG_RHSMCON_PEM_DIR_PATH"); +- setenv("PYTHONPATH", WRONG_TESTING_PYTHONPATH, 1); +- +- int rec_ret_val = test_ureport_server_config_set_client_auth_exit_code(&config, "rhsm"); +- +- /* we expect the same return value */ +-// assert(exp_ret_val == rec_ret_val); +- + return 0; + } + ]]) +@@ -1208,8 +1052,6 @@ AT_TESTFUN([ureport_server_config_load_basic_auth], + #include "libreport_curl.h" + #include "problem_data.h" + +-#define RHSM_WEB_SERVICE_URL "https://cert-api.access.redhat.com/rs/telemetry/abrt" +- + int main(void) + { + g_verbose=3; +@@ -1226,22 +1068,6 @@ int main(void) + ureport_server_config_destroy(&config); + } + +- { +- struct ureport_server_config config; +- ureport_server_config_init(&config); +- +- setenv("LIBREPORT_DEBUG_PLUGINS_CONF_DIR", "../../ureport-rhts-credentials/", 1); +- +- ureport_server_config_load_basic_auth(&config, "rhts-credentials"); +- +- assert(strcmp(config.ur_username, "rhn-user-name") == 0); +- assert(strcmp(config.ur_password, "rhn-password") == 0); +- assert(strcmp(config.ur_url, RHSM_WEB_SERVICE_URL) == 0); +- +- unsetenv("LIBREPORT_DEBUG_PLUGINS_CONF_DIR"); +- ureport_server_config_destroy(&config); +- } +- + { + pid_t pid = fork(); + if (pid < 0) +diff --git a/tests/ureport/rhsm/__init__.py b/tests/ureport/rhsm/__init__.py +deleted file mode 100644 +index e69de29..0000000 +diff --git a/tests/ureport/rhsm/config.py b/tests/ureport/rhsm/config.py +deleted file mode 100644 +index 44483d8..0000000 +--- a/tests/ureport/rhsm/config.py ++++ /dev/null +@@ -1,8 +0,0 @@ +-import os +- +-def initConfig(): +- return myConfig() +- +-class myConfig(): +- def get(self, key, value): +- return os.path.abspath("../../ureport/certs/correct") diff --git a/SOURCES/0031-plugins-reporter-rhtsupport-Fix-command-line-parsing.patch b/SOURCES/0031-plugins-reporter-rhtsupport-Fix-command-line-parsing.patch new file mode 100644 index 0000000..a69bd54 --- /dev/null +++ b/SOURCES/0031-plugins-reporter-rhtsupport-Fix-command-line-parsing.patch @@ -0,0 +1,34 @@ +From aea02b3719a161a05dac815955cfa1bb630e8da4 Mon Sep 17 00:00:00 2001 +From: Ernestas Kulik <ekulik@redhat.com> +Date: Fri, 24 Jul 2020 10:45:37 +0200 +Subject: [PATCH] plugins: reporter-rhtsupport: Fix command-line parsing + +cb81dc0870949fbacaa6e2384e91fc4de4df43a5 drops -u and -C options, but +does not remove them from the enumeration, which maps the options to the +option struct, leading to -F and -D not being parsed. + +https://bugzilla.redhat.com/show_bug.cgi?id=1860285 +--- + src/plugins/reporter-rhtsupport.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/src/plugins/reporter-rhtsupport.c b/src/plugins/reporter-rhtsupport.c +index 411bffc..7f5aafa 100644 +--- a/src/plugins/reporter-rhtsupport.c ++++ b/src/plugins/reporter-rhtsupport.c +@@ -404,10 +404,8 @@ int main(int argc, char **argv) + OPT_c = 1 << 2, + OPT_t = 1 << 3, + OPT_f = 1 << 4, +- OPT_u = 1 << 5, +- OPT_C = 1 << 6, +- OPT_F = 1 << 7, +- OPT_D = 1 << 8, ++ OPT_F = 1 << 5, ++ OPT_D = 1 << 6, + }; + /* Keep enum above and order of options below in sync! */ + struct options program_options[] = { +-- +2.26.2 + diff --git a/SOURCES/0032-Drop-remaining-references-to-removed-command-line-op.patch b/SOURCES/0032-Drop-remaining-references-to-removed-command-line-op.patch new file mode 100644 index 0000000..cf53807 --- /dev/null +++ b/SOURCES/0032-Drop-remaining-references-to-removed-command-line-op.patch @@ -0,0 +1,44 @@ +From 143c76e6db52881a8da188f54ec0ec1aacb209de Mon Sep 17 00:00:00 2001 +From: Ernestas Kulik <ekulik@redhat.com> +Date: Wed, 19 Aug 2020 09:30:28 +0300 +Subject: [PATCH] Drop remaining references to removed command-line options + +cb81dc0870949fbacaa6e2384e91fc4de4df43a5 drops -u and -C options, but +the report_RHTSupport event handler still passes one of them, resulting +in failures. + +https://bugzilla.redhat.com/show_bug.cgi?id=1867064 +--- + doc/reporter-rhtsupport.txt | 2 +- + src/plugins/rhtsupport_event.conf | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/doc/reporter-rhtsupport.txt b/doc/reporter-rhtsupport.txt +index 132c0eaa..7d79e33b 100644 +--- a/doc/reporter-rhtsupport.txt ++++ b/doc/reporter-rhtsupport.txt +@@ -7,7 +7,7 @@ reporter-rhtsupport - Reports problem to RHTSupport. + + SYNOPSIS + -------- +-'reporter-rhtsupport' [-v] [-c CONFFILE] [-F FMTFILE] [-u -C UR_CONFFILE] -d DIR ++'reporter-rhtsupport' [-v] [-c CONFFILE] [-F FMTFILE] -d DIR + + Or: + +diff --git a/src/plugins/rhtsupport_event.conf b/src/plugins/rhtsupport_event.conf +index cc2f05d1..6b0b3e67 100644 +--- a/src/plugins/rhtsupport_event.conf ++++ b/src/plugins/rhtsupport_event.conf +@@ -1,6 +1,6 @@ + EVENT=report_RHTSupport +- # Submit an uReport and create a case in Red Hat Customer Portal +- reporter-rhtsupport -u ++ # Create a case in Red Hat Customer Portal ++ reporter-rhtsupport + + EVENT=report_RHTSupport_AddData + # Attach data to a case in Red Hat Customer Portal +-- +2.28.0 + diff --git a/SOURCES/9990-lib-Seek-beginning-of-mountinfo-file.patch b/SOURCES/9990-lib-Seek-beginning-of-mountinfo-file.patch deleted file mode 100644 index 97b4523..0000000 --- a/SOURCES/9990-lib-Seek-beginning-of-mountinfo-file.patch +++ /dev/null @@ -1,34 +0,0 @@ -From c767c5b858c88aa9fad0ca3aa80e5fd18c6d830d Mon Sep 17 00:00:00 2001 -From: Matej Marusak <mmarusak@redhat.com> -Date: Tue, 4 Dec 2018 09:38:32 +0100 -Subject: [PATCH 0/2] lib: Seek beginning of mountinfo file - -Signed-off-by: Matej Marusak <mmarusak@redhat.com> -(cherry picked from commit c8afd2847f59278faac8d12c150db1d29f7ad622) ---- - src/lib/get_cmdline.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/lib/get_cmdline.c b/src/lib/get_cmdline.c -index 83c2fb45..49d419d5 100644 ---- a/src/lib/get_cmdline.c -+++ b/src/lib/get_cmdline.c -@@ -905,6 +905,7 @@ int process_has_own_root_at(int pid_proc_fd) - close(mnt_fd); - return r; - } -+ fseek(fin, 0, SEEK_SET); - - r = get_mountinfo_for_mount_point(fin, &pid_root, "/"); - fclose(fin); -@@ -925,6 +926,7 @@ int process_has_own_root_at(int pid_proc_fd) - return r; - } - -+ fseek(fin, 0, SEEK_SET); - r = get_mountinfo_for_mount_point(fin, &system_root, "/"); - fclose(fin); - if (r) --- -2.21.0 - diff --git a/SOURCES/9991-testsuite-Correct-string-format.patch b/SOURCES/9991-testsuite-Correct-string-format.patch deleted file mode 100644 index 70fd2b7..0000000 --- a/SOURCES/9991-testsuite-Correct-string-format.patch +++ /dev/null @@ -1,27 +0,0 @@ -From e8e69f0bf6f0bf067bc7f58f018a74c35d469342 Mon Sep 17 00:00:00 2001 -From: Matej Marusak <mmarusak@redhat.com> -Date: Tue, 4 Dec 2018 11:47:16 +0100 -Subject: [PATCH 1/2] testsuite: Correct string format - -Signed-off-by: Matej Marusak <mmarusak@redhat.com> -(cherry picked from commit 7b123846bc8baa3ff3a6ab8b4e1c5c062d666b5f) ---- - tests/reported_to.at | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/reported_to.at b/tests/reported_to.at -index ecf323d8..f95971f7 100644 ---- a/tests/reported_to.at -+++ b/tests/reported_to.at -@@ -221,7 +221,7 @@ bool parse_and_check(const char *reported_to, GList *expected) - - if(e->timestamp != c->timestamp) - { -- printf("Timestamps: '%lld' != '%lld'\n", e->timestamp, c->timestamp); -+ printf("Timestamps: '%ld' != '%ld'\n", e->timestamp, c->timestamp); - goto finish; - } - --- -2.21.0 - diff --git a/SOURCES/9992-lib-Explicitly-do-not-use-DST.patch b/SOURCES/9992-lib-Explicitly-do-not-use-DST.patch deleted file mode 100644 index 46bf669..0000000 --- a/SOURCES/9992-lib-Explicitly-do-not-use-DST.patch +++ /dev/null @@ -1,33 +0,0 @@ -From a5fbbd2fca0c8cd2a3c0c9a898dca37addf4b2e0 Mon Sep 17 00:00:00 2001 -From: Matej Marusak <mmarusak@redhat.com> -Date: Thu, 6 Dec 2018 11:59:56 +0100 -Subject: [PATCH 2/2] lib: Explicitly do not use DST - -DST = Daylight Saving Time -Value of this field is not set up by strptime and therefore value -of `tm_isdst` field is undefined. Bacause of this reason, output of -`mktime` may differ +-1 hour. - -Signed-off-by: Matej Marusak <mmarusak@redhat.com> -(cherry picked from commit bd7b93d056d780df18b377f5c553611deeff2443) ---- - src/lib/iso_date_string.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/lib/iso_date_string.c b/src/lib/iso_date_string.c -index ab23f05b..cb887832 100644 ---- a/src/lib/iso_date_string.c -+++ b/src/lib/iso_date_string.c -@@ -61,6 +61,9 @@ int iso_date_string_parse(const char *date, time_t *pt) - return -EINVAL; - } - -+ // daylight saving time not in use -+ local.tm_isdst = 0; -+ - *pt = mktime(&local); - return 0; - } --- -2.21.0 - diff --git a/SPECS/libreport.spec b/SPECS/libreport.spec index 0bcd8b1..dcea294 100644 --- a/SPECS/libreport.spec +++ b/SPECS/libreport.spec @@ -29,7 +29,7 @@ Summary: Generic library for reporting various problems Name: libreport Version: 2.9.5 -Release: 10%{?dist} +Release: 15%{?dist} License: GPLv2+ URL: https://abrt.readthedocs.org/ Source: https://github.com/abrt/%{name}/archive/%{version}/%{name}-%{version}.tar.gz @@ -37,6 +37,7 @@ Source: https://github.com/abrt/%{name}/archive/%{version}/%{name}-%{version}.ta Patch0001: 0001-ureport-use-python3-to-get-consumerCertDir.patch Patch0002: 0002-Remove-option-to-screencast-problems.patch Patch0003: 0003-offer-reporting-to-Bugzilla-only-for-pre-GA-Anaconda.patch +Patch0004: 0004-replace-all-Fedora-URLs-by-corresponding-values-for-.patch Patch0005: 0005-coverity-fix-def6.patch Patch0006: 0006-coverity-fix-def7.patch Patch0007: 0007-coverity-fix-def9.patch @@ -62,15 +63,20 @@ Patch0024: 0024-lib-fix-a-SEGV-in-list_possible_events.patch Patch0025: 0025-report-client-Find-debuginfos-in-own-method.patch Patch0026: 0026-reportclient-Find-and-download-required-debuginfo-pa.patch Patch0027: 0027-reportclient-Search-for-required-packages-recursivel.patch -#git format-patch -N --start-number=28 c0d0e59d +# git format-patch --no-numbered --start-number=28 --topo-order 2.9.5-10.el8 +Patch0028: 0028-dirsize-Skip-dirs-in-which-sosreport-is-being-genera.patch +# git format-patch --no-numbered --start-number=29 --topo-order 2.9.5-11.el8 +Patch0029: 0029-setgid-instead-of-setuid-the-abrt-action-install-deb.patch +# git format-patch --no-numbered --start-number=30 --topo-order 2.9.5-12.el8 +Patch0030: 0030-ureport-Drop-Strata-integration.patch +# git format-patch --no-numbered --start-number=31 --topo-order 2.9.5-13.el8 +Patch0031: 0031-plugins-reporter-rhtsupport-Fix-command-line-parsing.patch +# git format-patch --no-numbered --start-number=32 --topo-order 2.9.5-14.el8 +Patch0032: 0032-Drop-remaining-references-to-removed-command-line-op.patch # autogen.sh is need to regenerate all the Makefile files Patch9000: 9000-Add-autogen.sh.patch -Patch9990: 9990-lib-Seek-beginning-of-mountinfo-file.patch -Patch9991: 9991-testsuite-Correct-string-format.patch -Patch9992: 9992-lib-Explicitly-do-not-use-DST.patch - BuildRequires: %{dbus_devel} BuildRequires: gtk3-devel BuildRequires: curl-devel @@ -411,9 +417,6 @@ CFLAGS="%{optflags} -Werror" %configure \ %if %{without bugzilla} --without-bugzilla \ %endif -%if 0%{?rhel} - --enable-import-rhtsupport-cert \ -%endif --enable-doxygen-docs \ --disable-silent-rules @@ -746,9 +749,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_datadir}/%{name}/events/report_RHTSupport.xml %{_datadir}/%{name}/events/report_RHTSupport_AddData.xml %{_datadir}/dbus-1/interfaces/com.redhat.problems.configuration.rhtsupport.xml -%if 0%{?rhel} -%attr(600,root,root)%{_sysconfdir}/%{name}/cert-api.access.redhat.com.pem -%endif %config(noreplace) %{_sysconfdir}/libreport/events.d/rhtsupport_event.conf %{_mandir}/man1/reporter-rhtsupport.1.gz %{_mandir}/man5/rhtsupport.conf.5.* @@ -853,8 +853,21 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog -* Tue Apr 28 2020 CentOS Sources <bugs@centos.org> - 2.9.5-10.el8.centos -- Apply debranding changes +* Tue Aug 18 2020 - Ernestas Kulik <ekulik@redhat.com> - 2.9.5-15 +- Add patch for rhbz#1867064 + +* Fri Jul 24 2020 - Ernestas Kulik <ekulik@redhat.com> - 2.9.5-14 +- Add patch for #1860285 + +* Mon Jun 29 2020 - Ernestas Kulik <ekulik@redhat.com> - 2.9.5-13 +- Add patch for #1848903 + +* Wed Jun 24 2020 Michal Židek <mzidek@redhat.com> - 2.9.5-12 +- Resolves: rhbz#1835388 - abrt-addon-ccpp causes failures during openscap scans on CCE-27119-7 +- This is just libreport side (abrt also needs to be patched) + +* Thu Apr 16 2020 Ernestas Kulik <ekulik@redhat.com> - 2.9.5-11 +- Add patch for #1822092 * Tue Jan 21 2020 Martin Kutlak <mkutlak@redhat.com> - 2.9.5-10 - reportclient: Search for required packages recursively @@ -862,7 +875,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : - report-client: Find debuginfos in own method - Resolves: rhbz#1783897 -* Fri Jul 29 2019 Martin Kutlak <mkutlak@redhat.com> - 2.9.5-9 +* Mon Jul 29 2019 Martin Kutlak <mkutlak@redhat.com> - 2.9.5-9 - lib: fix a SEGV in list_possible_events() - Resolves: rhbz#1733515