Compare commits
6 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
35f00cea1b | ||
|
|
e643f4e31a | ||
|
|
9763e53801 | ||
|
|
864bf6c17d | ||
|
|
2c6089c840 | ||
|
|
de86a21d42 |
14 changed files with 598 additions and 430 deletions
|
|
@ -1 +0,0 @@
|
|||
1
|
||||
16
.gitignore
vendored
16
.gitignore
vendored
|
|
@ -15,19 +15,3 @@
|
|||
/libreport-2.14.0.tar.gz
|
||||
/libreport-2.15.1.tar.gz
|
||||
/libreport-2.15.2.tar.gz
|
||||
/libreport-2.16.0.tar.gz
|
||||
/libreport-2.17.0.tar.gz
|
||||
/libreport-2.17.1.tar.gz
|
||||
/libreport-2.17.2.tar.gz
|
||||
/libreport-2.17.3.tar.gz
|
||||
/libreport-2.17.4.tar.gz
|
||||
/libreport-2.17.5.tar.gz
|
||||
/libreport-2.17.6.tar.gz
|
||||
/libreport-2.17.7.tar.gz
|
||||
/libreport-2.17.8.tar.gz
|
||||
/libreport-2.17.9.tar.gz
|
||||
/libreport-2.17.10.tar.gz
|
||||
/libreport-2.17.11.tar.gz
|
||||
/libreport-2.17.13.tar.gz
|
||||
/libreport-2.17.14.tar.gz
|
||||
/libreport-2.17.15.tar.gz
|
||||
|
|
|
|||
|
|
@ -1,14 +1,10 @@
|
|||
specfile_path: libreport.spec
|
||||
synced_files:
|
||||
- .packit.yml
|
||||
- libreport.spec
|
||||
- .packit.yml
|
||||
- libreport.spec
|
||||
upstream_package_name: libreport
|
||||
upstream_project_url: https://github.com/abrt/libreport
|
||||
downstream_package_name: libreport
|
||||
|
||||
# No extra dependencies are necessary to build the SRPM.
|
||||
srpm_build_deps: []
|
||||
|
||||
jobs:
|
||||
- job: propose_downstream
|
||||
trigger: release
|
||||
|
|
|
|||
401
0001-reporter-bugzilla-Use-API-key-for-authentication.patch
Normal file
401
0001-reporter-bugzilla-Use-API-key-for-authentication.patch
Normal file
|
|
@ -0,0 +1,401 @@
|
|||
From 34fce86c0116ef2c888dfe7e474073b158bca8b3 Mon Sep 17 00:00:00 2001
|
||||
From: Michal Srb <michal@redhat.com>
|
||||
Date: Mon, 21 Feb 2022 00:49:51 +0100
|
||||
Subject: [PATCH] [reporter-bugzilla] Use API key for authentication
|
||||
|
||||
Following change will take effect on February 28 2022:
|
||||
|
||||
"""
|
||||
Applications making API calls to Bugzilla may no longer
|
||||
authenticate using passwords or supplying API keys
|
||||
in call parameters. Instead, API keys must be supplied
|
||||
in the Authorization header.
|
||||
"""
|
||||
|
||||
See the announcement for more details:
|
||||
https://listman.redhat.com/archives/bugzilla-announce-list/2022-February/msg00000.html
|
||||
|
||||
Signed-off-by: Michal Srb <michal@redhat.com>
|
||||
---
|
||||
doc/report_Bugzilla.conf.txt | 7 +--
|
||||
doc/reporter-bugzilla.txt | 14 ++---
|
||||
src/gtk-helpers/secrets.c | 2 +-
|
||||
src/plugins/bugzilla.conf | 7 +--
|
||||
src/plugins/report_Bugzilla.conf | 3 +-
|
||||
src/plugins/report_Bugzilla.xml.in.in | 13 ++--
|
||||
src/plugins/reporter-bugzilla.c | 87 ++++++++-------------------
|
||||
src/plugins/rhbz.c | 15 +++++
|
||||
src/plugins/rhbz.h | 2 +
|
||||
tests/bugzilla_plugin.at.in | 10 +--
|
||||
10 files changed, 61 insertions(+), 99 deletions(-)
|
||||
|
||||
diff --git a/doc/report_Bugzilla.conf.txt b/doc/report_Bugzilla.conf.txt
|
||||
index ea500ae6..ce7df911 100644
|
||||
--- a/doc/report_Bugzilla.conf.txt
|
||||
+++ b/doc/report_Bugzilla.conf.txt
|
||||
@@ -12,11 +12,8 @@ This configuration file contains values for options defined in
|
||||
|
||||
Configuration file lines should have 'PARAM = VALUE' format. The parameters are:
|
||||
|
||||
-'Bugzilla_Login'::
|
||||
- Login to Bugzilla account.
|
||||
-
|
||||
-'Bugzilla_Password'::
|
||||
- Password to Bugzilla account.
|
||||
+'Bugzilla_APIKey'::
|
||||
+ API key for authentication to Bugzilla account.
|
||||
|
||||
'Bugzilla_BugzillaURL'::
|
||||
Bugzilla HTTP(S) address. (default: https://bugzilla.redhat.com)
|
||||
diff --git a/doc/reporter-bugzilla.txt b/doc/reporter-bugzilla.txt
|
||||
index 2aee41e1..601d2a8f 100644
|
||||
--- a/doc/reporter-bugzilla.txt
|
||||
+++ b/doc/reporter-bugzilla.txt
|
||||
@@ -57,11 +57,8 @@ and to user's local ~/.config/libreport/bugzilla.conf.
|
||||
Configuration file lines should have 'PARAM = VALUE' format. The parameters are:
|
||||
User's local configuration overrides the system wide configuration.
|
||||
|
||||
-'Login'::
|
||||
- Login to Bugzilla account.
|
||||
-
|
||||
-'Password'::
|
||||
- Password to Bugzilla account.
|
||||
+'APIKey'::
|
||||
+ API key for authentication to Bugzilla account.
|
||||
|
||||
'BugzillaURL'::
|
||||
Bugzilla HTTP(S) address. (default: https://bugzilla.redhat.com)
|
||||
@@ -175,11 +172,8 @@ ENVIRONMENT VARIABLES
|
||||
Environment variables take precedence over values provided in
|
||||
the configuration file.
|
||||
|
||||
-'Bugzilla_Login'::
|
||||
- Login to Bugzilla account.
|
||||
-
|
||||
-'Bugzilla_Password'::
|
||||
- Password to Bugzilla account.
|
||||
+'Bugzilla_APIKey'::
|
||||
+ API key for authentication to Bugzilla account.
|
||||
|
||||
'Bugzilla_BugzillaURL'::
|
||||
Bugzilla HTTP(S) address. (default: https://bugzilla.redhat.com)
|
||||
diff --git a/src/gtk-helpers/secrets.c b/src/gtk-helpers/secrets.c
|
||||
index 65decaad..55c6ee51 100644
|
||||
--- a/src/gtk-helpers/secrets.c
|
||||
+++ b/src/gtk-helpers/secrets.c
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
For example, "report_Bugzilla" item will have the lookup attribute
|
||||
like ("libreportEventConfig", "report_Bugzilla") and the secret value
|
||||
- like ("Bugzilla_URL=https://bugzilla.redhat.com\0Bugzilla_Login=foo\0")
|
||||
+ like ("Bugzilla_URL=https://bugzilla.redhat.com\0Bugzilla_APIKey=foo\0")
|
||||
|
||||
|
||||
|
||||
diff --git a/src/plugins/bugzilla.conf b/src/plugins/bugzilla.conf
|
||||
index a7727392..a81348f8 100644
|
||||
--- a/src/plugins/bugzilla.conf
|
||||
+++ b/src/plugins/bugzilla.conf
|
||||
@@ -7,10 +7,9 @@
|
||||
# yes means that ssl certificates will be checked
|
||||
SSLVerify = yes
|
||||
|
||||
-# your login has to exist, if you don't have any, please create one
|
||||
-Login =
|
||||
-# your password
|
||||
-Password =
|
||||
+# Bugzilla API key.
|
||||
+# You can set up an API key by using the "API Key" tab in the Preferences pages.
|
||||
+APIKey =
|
||||
|
||||
# SELinux guys almost always move filed bugs from component
|
||||
# selinux-policy to another component.
|
||||
diff --git a/src/plugins/report_Bugzilla.conf b/src/plugins/report_Bugzilla.conf
|
||||
index f1a77f50..c9bfdd11 100644
|
||||
--- a/src/plugins/report_Bugzilla.conf
|
||||
+++ b/src/plugins/report_Bugzilla.conf
|
||||
@@ -1,4 +1,3 @@
|
||||
Bugzilla_BugzillaURL = https://bugzilla.redhat.com
|
||||
-Bugzilla_Login =
|
||||
-Bugzilla_Password =
|
||||
+Bugzilla_APIKey =
|
||||
Bugzilla_SSLVerify = yes
|
||||
diff --git a/src/plugins/report_Bugzilla.xml.in.in b/src/plugins/report_Bugzilla.xml.in.in
|
||||
index d6078a18..966d97f6 100644
|
||||
--- a/src/plugins/report_Bugzilla.xml.in.in
|
||||
+++ b/src/plugins/report_Bugzilla.xml.in.in
|
||||
@@ -13,16 +13,11 @@
|
||||
<support-restricted-access optionname="Bugzilla_CreatePrivate">yes</support-restricted-access>
|
||||
|
||||
<options>
|
||||
- <option type="text" name="Bugzilla_Login">
|
||||
- <_label>User name</_label>
|
||||
+ <option type="text" name="Bugzilla_APIKey">
|
||||
+ <_label>API key</_label>
|
||||
<allow-empty>no</allow-empty>
|
||||
- <_description>Bugzilla account user name</_description>
|
||||
- <_note-html>You can create bugzilla.redhat.com account <a href="https://bugzilla.redhat.com/createaccount.cgi">here</a></_note-html>
|
||||
- </option>
|
||||
- <option type="password" name="Bugzilla_Password">
|
||||
- <_label>Password</_label>
|
||||
- <allow-empty>no</allow-empty>
|
||||
- <_description>Bugzilla account password</_description>
|
||||
+ <_description>Bugzilla API key</_description>
|
||||
+ <_note-html>You can generate the API key for your Bugzilla account <a href="https://bugzilla.redhat.com/userprefs.cgi?tab=apikey">here</a></_note-html>
|
||||
</option>
|
||||
<option type="bool" name="Bugzilla_CreatePrivate">
|
||||
<_label>Restrict access</_label>
|
||||
diff --git a/src/plugins/reporter-bugzilla.c b/src/plugins/reporter-bugzilla.c
|
||||
index b588454b..27aa63d2 100644
|
||||
--- a/src/plugins/reporter-bugzilla.c
|
||||
+++ b/src/plugins/reporter-bugzilla.c
|
||||
@@ -75,7 +75,7 @@ int attach_file_item(struct abrt_xmlrpc *ax, const char *bug_id,
|
||||
|
||||
struct bugzilla_struct {
|
||||
char *b_login;
|
||||
- char *b_password;
|
||||
+ char *b_api_key;
|
||||
const char *b_bugzilla_url;
|
||||
const char *b_bugzilla_xmlrpc;
|
||||
char *b_product;
|
||||
@@ -108,15 +108,10 @@ static void set_settings(struct bugzilla_struct *b, GHashTable *settings)
|
||||
{
|
||||
const char *environ;
|
||||
|
||||
- environ = getenv("Bugzilla_Login");
|
||||
+ environ = getenv("Bugzilla_APIKey");
|
||||
if (!environ)
|
||||
- environ = g_hash_table_lookup(settings, "Login");
|
||||
- b->b_login = g_strdup(environ ? environ : "");
|
||||
-
|
||||
- environ = getenv("Bugzilla_Password");
|
||||
- if (!environ)
|
||||
- environ = g_hash_table_lookup(settings, "Password");
|
||||
- b->b_password = g_strdup(environ ? environ : "");
|
||||
+ environ = g_hash_table_lookup(settings, "APIKey");
|
||||
+ b->b_api_key = g_strdup(environ ? environ : "");
|
||||
|
||||
environ = getenv("Bugzilla_BugzillaURL");
|
||||
if (!environ)
|
||||
@@ -210,33 +205,16 @@ char *ask_bz_login(const char *message)
|
||||
}
|
||||
|
||||
static
|
||||
-char *ask_bz_password(const char *message)
|
||||
+char *ask_bz_api_key(const char *message)
|
||||
{
|
||||
- char *password = libreport_ask_password(message);
|
||||
- if (password == NULL || password[0] == '\0')
|
||||
+ char *api_key = libreport_ask_password(message);
|
||||
+ if (api_key == NULL || api_key[0] == '\0')
|
||||
{
|
||||
libreport_set_xfunc_error_retval(EXIT_CANCEL_BY_USER);
|
||||
- error_msg_and_die(_("Can't continue without password"));
|
||||
+ error_msg_and_die(_("Can't continue without API key"));
|
||||
}
|
||||
|
||||
- return password;
|
||||
-}
|
||||
-
|
||||
-static
|
||||
-void login(struct abrt_xmlrpc *client, struct bugzilla_struct *rhbz)
|
||||
-{
|
||||
- log_warning(_("Logging into Bugzilla at %s"), rhbz->b_bugzilla_url);
|
||||
-
|
||||
- while (!rhbz_login(client, rhbz->b_login, rhbz->b_password))
|
||||
- {
|
||||
- free(rhbz->b_login);
|
||||
- g_autofree char *question = g_strdup_printf(_("Invalid password or login. Please enter your %s login:"), rhbz->b_bugzilla_url);
|
||||
- rhbz->b_login = ask_bz_login(question);
|
||||
-
|
||||
- free(rhbz->b_password);
|
||||
- question = g_strdup_printf(_("Invalid password or login. Please enter the password for '%s':"), rhbz->b_login);
|
||||
- rhbz->b_password = ask_bz_password(question);
|
||||
- }
|
||||
+ return api_key;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
@@ -292,7 +270,7 @@ int main(int argc, char **argv)
|
||||
"\nIf not specified, CONFFILE defaults to %1$s/plugins/bugzilla.conf"
|
||||
"\nand user's local ~%2$s/bugzilla.conf."
|
||||
"\nIts lines should have 'PARAM = VALUE' format."
|
||||
- "\nRecognized string parameters: BugzillaURL, Login, Password, OSRelease."
|
||||
+ "\nRecognized string parameters: BugzillaURL, BugzillaAPIKey, OSRelease."
|
||||
"\nRecognized boolean parameter (VALUE should be 1/0, yes/no): SSLVerify."
|
||||
"\nUser's local configuration overrides the system wide configuration."
|
||||
"\nParameters can be overridden via $Bugzilla_PARAM environment variables."
|
||||
@@ -464,18 +442,11 @@ int main(int argc, char **argv)
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
- if (rhbz.b_login[0] == '\0')
|
||||
+ if (rhbz.b_api_key[0] == '\0')
|
||||
{
|
||||
- free(rhbz.b_login);
|
||||
- g_autofree char *question = g_strdup_printf(_("Login is not provided by configuration. Please enter your %s login:"), rhbz.b_bugzilla_url);
|
||||
- rhbz.b_login = ask_bz_login(question);
|
||||
- }
|
||||
-
|
||||
- if (rhbz.b_password[0] == '\0')
|
||||
- {
|
||||
- free(rhbz.b_password);
|
||||
- g_autofree char *question = g_strdup_printf(_("Password is not provided by configuration. Please enter the password for '%s':"), rhbz.b_login);
|
||||
- rhbz.b_password = ask_bz_password(question);
|
||||
+ free(rhbz.b_api_key);
|
||||
+ g_autofree char *question = g_strdup_printf(_("API key is not provided by configuration. Please enter the API key for '%s':"), rhbz.b_bugzilla_url);
|
||||
+ rhbz.b_api_key = ask_bz_api_key(question);
|
||||
}
|
||||
|
||||
if (opts & OPT_t)
|
||||
@@ -513,7 +484,7 @@ int main(int argc, char **argv)
|
||||
log_warning(_("Using Bugzilla ID '%s'"), ticket_no);
|
||||
}
|
||||
|
||||
- login(client, &rhbz);
|
||||
+ rhbz_add_session_api_key(client, rhbz.b_api_key);
|
||||
|
||||
if (opts & OPT_w)
|
||||
{
|
||||
@@ -524,6 +495,8 @@ int main(int argc, char **argv)
|
||||
ticket = (unsigned)ticket_intermediate;
|
||||
else
|
||||
error_msg_and_die("expected number in range <0, %d>: '%s'", UINT_MAX, ticket_no);
|
||||
+ g_autofree char *question = g_strdup_printf(_("Please enter your %s login:"), rhbz.b_bugzilla_url);
|
||||
+ rhbz.b_login = ask_bz_login(question);
|
||||
rhbz_mail_to_cc(client, ticket, rhbz.b_login, /* require mail notify */ 0);
|
||||
}
|
||||
else
|
||||
@@ -553,9 +526,6 @@ int main(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
- log_warning(_("Logging out"));
|
||||
- rhbz_logout(client);
|
||||
-
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -639,8 +609,7 @@ int main(int argc, char **argv)
|
||||
exit(0);
|
||||
}
|
||||
|
||||
- login(client, &rhbz);
|
||||
-
|
||||
+ rhbz_add_session_api_key(client, rhbz.b_api_key);
|
||||
|
||||
unsigned long bug_id = 0;
|
||||
|
||||
@@ -745,9 +714,6 @@ int main(int argc, char **argv)
|
||||
|
||||
if (r == 0)
|
||||
{
|
||||
- log_warning(_("Logging out"));
|
||||
- rhbz_logout(client);
|
||||
-
|
||||
exit(EXIT_CANCEL_BY_USER);
|
||||
}
|
||||
|
||||
@@ -887,12 +853,14 @@ int main(int argc, char **argv)
|
||||
* bug's status.
|
||||
*/
|
||||
|
||||
- /* Add user's login to CC if not there already */
|
||||
- if (strcmp(bz->bi_reporter, rhbz.b_login) != 0
|
||||
- && !g_list_find_custom(bz->bi_cc_list, rhbz.b_login, (GCompareFunc)g_strcmp0)
|
||||
- ) {
|
||||
- log_warning(_("Adding %s to CC list"), rhbz.b_login);
|
||||
- rhbz_mail_to_cc(client, bz->bi_id, rhbz.b_login, RHBZ_MINOR_UPDATE);
|
||||
+ /* Add user's login to CC if not there already, but only if the login is known */
|
||||
+ if (rhbz.b_login != NULL && rhbz.b_login[0] != '\0') {
|
||||
+ if (strcmp(bz->bi_reporter, rhbz.b_login) != 0
|
||||
+ && !g_list_find_custom(bz->bi_cc_list, rhbz.b_login, (GCompareFunc)g_strcmp0)
|
||||
+ ) {
|
||||
+ log_warning(_("Adding %s to CC list"), rhbz.b_login);
|
||||
+ rhbz_mail_to_cc(client, bz->bi_id, rhbz.b_login, RHBZ_MINOR_UPDATE);
|
||||
+ }
|
||||
}
|
||||
|
||||
/* Add comment and bt */
|
||||
@@ -947,9 +915,6 @@ int main(int argc, char **argv)
|
||||
}
|
||||
|
||||
log_out:
|
||||
- log_warning(_("Logging out"));
|
||||
- rhbz_logout(client);
|
||||
-
|
||||
log_warning(_("Status: %s%s%s %s/show_bug.cgi?id=%u"),
|
||||
bz->bi_status,
|
||||
bz->bi_resolution ? " " : "",
|
||||
diff --git a/src/plugins/rhbz.c b/src/plugins/rhbz.c
|
||||
index c2855a70..5234250d 100644
|
||||
--- a/src/plugins/rhbz.c
|
||||
+++ b/src/plugins/rhbz.c
|
||||
@@ -208,6 +208,21 @@ bool rhbz_login(struct abrt_xmlrpc *ax, const char *login, const char *password)
|
||||
return true;
|
||||
}
|
||||
|
||||
+
|
||||
+bool rhbz_add_session_api_key(struct abrt_xmlrpc *ax, const char *api_key)
|
||||
+{
|
||||
+ func_entry();
|
||||
+
|
||||
+ xmlrpc_env env;
|
||||
+ xmlrpc_env_init(&env);
|
||||
+
|
||||
+ log_debug("Adding session param Bugzilla_api_key");
|
||||
+ abrt_xmlrpc_client_add_session_param_string(&env, ax, "Bugzilla_api_key", api_key);
|
||||
+
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+
|
||||
xmlrpc_value *rhbz_get_member(const char *member, xmlrpc_value *xml)
|
||||
{
|
||||
func_entry_str(member);
|
||||
diff --git a/src/plugins/rhbz.h b/src/plugins/rhbz.h
|
||||
index 7183da35..d10ff31c 100644
|
||||
--- a/src/plugins/rhbz.h
|
||||
+++ b/src/plugins/rhbz.h
|
||||
@@ -67,6 +67,8 @@ void free_bug_info(struct bug_info *bz);
|
||||
|
||||
bool rhbz_login(struct abrt_xmlrpc *ax, const char *login, const char *password);
|
||||
|
||||
+bool rhbz_add_session_api_key(struct abrt_xmlrpc *ax, const char *api_key);
|
||||
+
|
||||
void rhbz_mail_to_cc(struct abrt_xmlrpc *ax, int bug_id, const char *mail, int flags);
|
||||
|
||||
void rhbz_add_comment(struct abrt_xmlrpc *ax, int bug_id, const char *comment,
|
||||
diff --git a/tests/bugzilla_plugin.at.in b/tests/bugzilla_plugin.at.in
|
||||
index abb912a0..0006ee92 100644
|
||||
--- a/tests/bugzilla_plugin.at.in
|
||||
+++ b/tests/bugzilla_plugin.at.in
|
||||
@@ -37,13 +37,10 @@ TS_MAIN
|
||||
TS_ASSERT_TRUE(conf->ec_supports_restricted_access);
|
||||
|
||||
event_option_t options[10] = {
|
||||
- { .eo_value = NULL, .eo_label = (char *)"User name",
|
||||
- .eo_note_html = (char *)"You can create bugzilla.redhat.com account <a href=\"https://bugzilla.redhat.com/createaccount.cgi\">here</a>",
|
||||
+ { .eo_value = NULL, .eo_label = (char *)"API key",
|
||||
+ .eo_note_html = (char *)"You can generate the API key for your Bugzilla account <a href=\"https://bugzilla.redhat.com/userprefs.cgi?tab=apikey\">here</a>",
|
||||
.eo_type = OPTION_TYPE_TEXT, .eo_allow_empty = 0, .is_advanced = 0,
|
||||
},
|
||||
- { .eo_value = NULL, .eo_label = (char *)"Password", .eo_note_html = NULL,
|
||||
- .eo_type = OPTION_TYPE_PASSWORD, .eo_allow_empty = 0, .is_advanced = 0,
|
||||
- },
|
||||
{ .eo_value = (char *)"@RED_HAT_BUGZILLA_CREATE_PRIVATE@", .eo_label = (char *)"Restrict access",
|
||||
.eo_note_html = (char *)"Restrict access to the created bugzilla ticket allowing only users from specified groups to view it (see advanced settings for more details)",
|
||||
.eo_type = OPTION_TYPE_BOOL, .eo_allow_empty = 0, .is_advanced = 0,
|
||||
@@ -79,8 +76,7 @@ TS_MAIN
|
||||
};
|
||||
|
||||
const char *option_names[] = {
|
||||
- "Bugzilla_Login",
|
||||
- "Bugzilla_Password",
|
||||
+ "Bugzilla_APIKey",
|
||||
"Bugzilla_CreatePrivate",
|
||||
"Bugzilla_PrivateGroups",
|
||||
"Bugzilla_BugzillaURL",
|
||||
--
|
||||
2.35.1
|
||||
|
||||
180
0002-reporter-bugzilla-send-API-key-in-HTTP-header.patch
Normal file
180
0002-reporter-bugzilla-send-API-key-in-HTTP-header.patch
Normal file
|
|
@ -0,0 +1,180 @@
|
|||
From e9f7047b10895cbeb40248055a1e29f5fb205887 Mon Sep 17 00:00:00 2001
|
||||
From: Michal Srb <michal@redhat.com>
|
||||
Date: Thu, 10 Mar 2022 10:13:51 +0100
|
||||
Subject: [PATCH] reporter-bugzilla: send API key in HTTP header
|
||||
|
||||
But only if the target instance is Red Hat Bugzilla.
|
||||
|
||||
This change is required as Red Hat Bugzilla expects the API key
|
||||
to be in the HTTP header and it won't find it in XML-RPC params.
|
||||
|
||||
xmlrpc-c doesn't support custom headers. Only User-Agent header
|
||||
is supported. However, since HTTP is a text protocol, we can add
|
||||
more headers by simply strategically placing line break characters
|
||||
("\r\n" for HTTP) inside the User-Agent header.
|
||||
HTTP will do the right thing and interpret such string as multiple
|
||||
headers.
|
||||
|
||||
Signed-off-by: Michal Srb <michal@redhat.com>
|
||||
---
|
||||
CHANGELOG.md | 1 +
|
||||
src/lib/abrt_xmlrpc.c | 31 ++++++++++++++++++++++++++++++-
|
||||
src/lib/abrt_xmlrpc.h | 2 ++
|
||||
src/lib/libreport-web.sym | 1 +
|
||||
src/plugins/reporter-bugzilla.c | 18 +++++++++++++++---
|
||||
5 files changed, 49 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/CHANGELOG.md b/CHANGELOG.md
|
||||
index c3946a05..0eaade41 100644
|
||||
--- a/CHANGELOG.md
|
||||
+++ b/CHANGELOG.md
|
||||
@@ -5,6 +5,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
||||
and this project adheres to [Semantic Versioning](http://semver.org/).
|
||||
|
||||
## [Unreleased]
|
||||
+- reporter-bugzilla: send API key in HTTP header for Red Hat Bugzilla
|
||||
|
||||
## [2.15.2]
|
||||
### Changed
|
||||
diff --git a/src/lib/abrt_xmlrpc.c b/src/lib/abrt_xmlrpc.c
|
||||
index 7cac9253..0d297e92 100644
|
||||
--- a/src/lib/abrt_xmlrpc.c
|
||||
+++ b/src/lib/abrt_xmlrpc.c
|
||||
@@ -37,6 +37,14 @@ void abrt_xmlrpc_error(xmlrpc_env *env)
|
||||
}
|
||||
|
||||
struct abrt_xmlrpc *abrt_xmlrpc_new_client(const char *url, int ssl_verify)
|
||||
+{
|
||||
+ /* non-RH clients are the same as RH clients,
|
||||
+ * but they don't send API key in the HTTP header.
|
||||
+ */
|
||||
+ return abrt_xmlrpc_new_redhat_client(url, ssl_verify, NULL);
|
||||
+}
|
||||
+
|
||||
+struct abrt_xmlrpc *abrt_xmlrpc_new_redhat_client(const char *url, int ssl_verify, const char *api_key)
|
||||
{
|
||||
GList *proxies = NULL;
|
||||
xmlrpc_env env;
|
||||
@@ -69,6 +77,24 @@ struct abrt_xmlrpc *abrt_xmlrpc_new_client(const char *url, int ssl_verify)
|
||||
#else
|
||||
curl_parms.user_agent = "abrt";
|
||||
#endif
|
||||
+ if (api_key != NULL) {
|
||||
+ /* Inject "Authorization" header right after the User-Agent header */
|
||||
+
|
||||
+ /* The User-Agent header normally has the following format:
|
||||
+ * User-Agent: libreport/2.15.2 Xmlrpc-c/1.51.0 Curl/7.79.1
|
||||
+ *
|
||||
+ * We modify it here so it becomes 3 headers:
|
||||
+ * User-Agent: libreport/2.15.2
|
||||
+ * Authorization: Bearer <api-key>
|
||||
+ * X-Libreport-Extra-User-Agent: Xmlrpc-c/1.51.0 Curl/7.79.1
|
||||
+ */
|
||||
+ curl_parms.user_agent = g_strdup_printf("%s\r\nAuthorization: Bearer %s\r\nX-Libreport-Extra-User-Agent:", curl_parms.user_agent, api_key);
|
||||
+
|
||||
+ /* User-Agent string seems to be burried somewhere deep in the xmlrpc_client struct.
|
||||
+ * Let's just remember the pointer here so we can easily free it when the time comes.
|
||||
+ */
|
||||
+ ax->libreport_user_agent = curl_parms.user_agent;
|
||||
+ }
|
||||
|
||||
proxies = get_proxy_list(url);
|
||||
/* Use the first proxy from the list */
|
||||
@@ -109,8 +135,11 @@ void abrt_xmlrpc_free_client(struct abrt_xmlrpc *ax)
|
||||
if (ax->ax_server_info)
|
||||
xmlrpc_server_info_free(ax->ax_server_info);
|
||||
|
||||
- if (ax->ax_client)
|
||||
+ if (ax->ax_client) {
|
||||
+ if (ax->libreport_user_agent)
|
||||
+ g_free(ax->libreport_user_agent);
|
||||
xmlrpc_client_destroy(ax->ax_client);
|
||||
+ }
|
||||
|
||||
for (GList *iter = ax->ax_session_params; iter; iter = g_list_next(iter))
|
||||
{
|
||||
diff --git a/src/lib/abrt_xmlrpc.h b/src/lib/abrt_xmlrpc.h
|
||||
index 31768ffc..848a35be 100644
|
||||
--- a/src/lib/abrt_xmlrpc.h
|
||||
+++ b/src/lib/abrt_xmlrpc.h
|
||||
@@ -37,6 +37,7 @@ struct abrt_xmlrpc {
|
||||
xmlrpc_client *ax_client;
|
||||
xmlrpc_server_info *ax_server_info;
|
||||
GList *ax_session_params;
|
||||
+ const char *libreport_user_agent;
|
||||
};
|
||||
|
||||
xmlrpc_value *abrt_xmlrpc_array_new(xmlrpc_env *env);
|
||||
@@ -48,6 +49,7 @@ void abrt_xmlrpc_params_set_value(xmlrpc_env *env, xmlrpc_value *params, const c
|
||||
|
||||
|
||||
struct abrt_xmlrpc *abrt_xmlrpc_new_client(const char *url, int ssl_verify);
|
||||
+struct abrt_xmlrpc *abrt_xmlrpc_new_redhat_client(const char *url, int ssl_verify, const char *api_key);
|
||||
void abrt_xmlrpc_free_client(struct abrt_xmlrpc *ax);
|
||||
void abrt_xmlrpc_client_add_session_param_string(xmlrpc_env *env, struct abrt_xmlrpc *ax, const char *name, const char *value);
|
||||
void abrt_xmlrpc_die(xmlrpc_env *env) __attribute__((noreturn));
|
||||
diff --git a/src/lib/libreport-web.sym b/src/lib/libreport-web.sym
|
||||
index 44f5244d..8dcff633 100644
|
||||
--- a/src/lib/libreport-web.sym
|
||||
+++ b/src/lib/libreport-web.sym
|
||||
@@ -44,6 +44,7 @@ global:
|
||||
abrt_xmlrpc_params_set_value_str;
|
||||
abrt_xmlrpc_params_set_value;
|
||||
abrt_xmlrpc_new_client;
|
||||
+ abrt_xmlrpc_new_redhat_client;
|
||||
abrt_xmlrpc_free_client;
|
||||
abrt_xmlrpc_client_add_session_param_string;
|
||||
abrt_xmlrpc_die;
|
||||
diff --git a/src/plugins/reporter-bugzilla.c b/src/plugins/reporter-bugzilla.c
|
||||
index 27aa63d2..c54d319c 100644
|
||||
--- a/src/plugins/reporter-bugzilla.c
|
||||
+++ b/src/plugins/reporter-bugzilla.c
|
||||
@@ -217,6 +217,12 @@ char *ask_bz_api_key(const char *message)
|
||||
return api_key;
|
||||
}
|
||||
|
||||
+static
|
||||
+bool is_redhat_bugzilla(const char *bugzilla_url)
|
||||
+{
|
||||
+ return g_str_has_suffix(bugzilla_url, "redhat.com");
|
||||
+}
|
||||
+
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
abrt_init(argv);
|
||||
@@ -378,7 +384,7 @@ int main(int argc, char **argv)
|
||||
xmlrpc_env_clean(&env);
|
||||
|
||||
struct abrt_xmlrpc *client;
|
||||
- client = abrt_xmlrpc_new_client(rhbz.b_bugzilla_xmlrpc, rhbz.b_ssl_verify);
|
||||
+ client = abrt_xmlrpc_new_redhat_client(rhbz.b_bugzilla_xmlrpc, rhbz.b_ssl_verify, rhbz.b_api_key);
|
||||
unsigned rhbz_ver = rhbz_version(client);
|
||||
|
||||
if (abrt_hash)
|
||||
@@ -484,7 +490,10 @@ int main(int argc, char **argv)
|
||||
log_warning(_("Using Bugzilla ID '%s'"), ticket_no);
|
||||
}
|
||||
|
||||
- rhbz_add_session_api_key(client, rhbz.b_api_key);
|
||||
+ if (!is_redhat_bugzilla(rhbz.b_bugzilla_url)) {
|
||||
+ /* Add API key as a XML-RPC param, but only for non-RH bugzilla instances */
|
||||
+ rhbz_add_session_api_key(client, rhbz.b_api_key);
|
||||
+ }
|
||||
|
||||
if (opts & OPT_w)
|
||||
{
|
||||
@@ -609,7 +618,10 @@ int main(int argc, char **argv)
|
||||
exit(0);
|
||||
}
|
||||
|
||||
- rhbz_add_session_api_key(client, rhbz.b_api_key);
|
||||
+ if (!is_redhat_bugzilla(rhbz.b_bugzilla_url)) {
|
||||
+ /* Add API key as a XML-RPC param, but only for non-RH bugzilla instances */
|
||||
+ rhbz_add_session_api_key(client, rhbz.b_api_key);
|
||||
+ }
|
||||
|
||||
unsigned long bug_id = 0;
|
||||
|
||||
--
|
||||
2.35.1
|
||||
|
||||
42
801.patch
42
801.patch
|
|
@ -1,42 +0,0 @@
|
|||
From 9be0010e109d307921a049d10078813423227582 Mon Sep 17 00:00:00 2001
|
||||
From: Nicolas Iooss <nicolas.iooss_git@polytechnique.org>
|
||||
Date: Fri, 15 Dec 2023 18:03:33 +0100
|
||||
Subject: [PATCH] Fix compatibility with libxml2 2.12
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Since libxml2 2.12, xmlNodePtr is no longer included by libxml/encoding.h.
|
||||
This leads to build errors such as:
|
||||
|
||||
CC reporter_mantisbt-reporter-mantisbt.o
|
||||
In file included from reporter-mantisbt.c:22:
|
||||
mantisbt.h:48:5: error: unknown type name ‘xmlNodePtr’
|
||||
48 | xmlNodePtr sr_root;
|
||||
| ^~~~~~~~~~
|
||||
mantisbt.h:49:5: error: unknown type name ‘xmlNodePtr’
|
||||
49 | xmlNodePtr sr_body;
|
||||
| ^~~~~~~~~~
|
||||
mantisbt.h:50:5: error: unknown type name ‘xmlNodePtr’
|
||||
50 | xmlNodePtr sr_method;
|
||||
| ^~~~~~~~~~
|
||||
|
||||
Fix this by including libxml/tree.h.
|
||||
|
||||
Signed-off-by: Nicolas Iooss <nicolas.iooss_git@polytechnique.org>
|
||||
---
|
||||
src/plugins/mantisbt.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/plugins/mantisbt.h b/src/plugins/mantisbt.h
|
||||
index 1feaf8f88..6979e7244 100644
|
||||
--- a/src/plugins/mantisbt.h
|
||||
+++ b/src/plugins/mantisbt.h
|
||||
@@ -25,6 +25,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#include <libxml/encoding.h>
|
||||
+#include <libxml/tree.h>
|
||||
#include "problem_report.h"
|
||||
|
||||
#define SOAP_STRING "ns2:string"
|
||||
|
|
@ -1,3 +1,3 @@
|
|||
This repository is maintained by packit.
|
||||
https://packit.dev/
|
||||
The file was generated using packit 0.91.0.post1.dev4+ge6fd4a25.
|
||||
The file was generated using packit 0.31.0.
|
||||
|
|
|
|||
15
gating.yaml
15
gating.yaml
|
|
@ -1,15 +0,0 @@
|
|||
--- !Policy
|
||||
product_versions:
|
||||
- fedora-*
|
||||
decision_context: bodhi_update_push_testing
|
||||
subject_type: koji_build
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
|
||||
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- fedora-*
|
||||
decision_context: bodhi_update_push_stable
|
||||
subject_type: koji_build
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
problem_item_get_size expects unsigned long * argument in problem_data.at test
|
||||
|
||||
Otherwise, the test fails to build on i686 with GCC 14.
|
||||
|
||||
Submitted upstream: <https://github.com/abrt/libreport/pull/802>
|
||||
|
||||
diff --git a/tests/problem_data.at b/tests/problem_data.at
|
||||
index 4d8bf0075c0a8b91..db67a76732d48663 100644
|
||||
--- a/tests/problem_data.at
|
||||
+++ b/tests/problem_data.at
|
||||
@@ -89,7 +89,7 @@ int main(int argc, char **argv)
|
||||
struct problem_item *itm = problem_data_add_ext(data, "1", "foo", CD_FLAG_TXT | CD_FLAG_ISNOTEDITABLE, PROBLEM_ITEM_UNINITIALIZED_SIZE);
|
||||
const size_t old_size = strlen(itm->content);
|
||||
{
|
||||
- size_t current_size = PROBLEM_ITEM_UNINITIALIZED_SIZE;
|
||||
+ unsigned long current_size = PROBLEM_ITEM_UNINITIALIZED_SIZE;
|
||||
assert(problem_item_get_size(itm, ¤t_size) == 0);
|
||||
assert(current_size != PROBLEM_ITEM_UNINITIALIZED_SIZE);
|
||||
assert(current_size == old_size);
|
||||
@@ -97,7 +97,7 @@ int main(int argc, char **argv)
|
||||
{
|
||||
g_free(itm->content);
|
||||
itm->content = NULL;
|
||||
- size_t current_size = PROBLEM_ITEM_UNINITIALIZED_SIZE;
|
||||
+ unsigned long current_size = PROBLEM_ITEM_UNINITIALIZED_SIZE;
|
||||
assert(problem_item_get_size(itm, ¤t_size) == 0);
|
||||
assert(current_size != PROBLEM_ITEM_UNINITIALIZED_SIZE);
|
||||
assert(current_size == old_size);
|
||||
@@ -120,7 +120,7 @@ int main(int argc, char **argv)
|
||||
struct problem_item *itm = problem_data_add_ext(data, "2", flnm, CD_FLAG_BIN, PROBLEM_ITEM_UNINITIALIZED_SIZE);
|
||||
|
||||
{
|
||||
- size_t current_size = PROBLEM_ITEM_UNINITIALIZED_SIZE;
|
||||
+ unsigned long current_size = PROBLEM_ITEM_UNINITIALIZED_SIZE;
|
||||
assert(problem_item_get_size(itm, ¤t_size) == 0);
|
||||
assert(current_size != PROBLEM_ITEM_UNINITIALIZED_SIZE);
|
||||
assert(current_size == old_size);
|
||||
@@ -129,7 +129,7 @@ int main(int argc, char **argv)
|
||||
close(flds);
|
||||
unlink(flnm);
|
||||
assert(stat(flnm, &buf) != 0);
|
||||
- size_t current_size = PROBLEM_ITEM_UNINITIALIZED_SIZE;
|
||||
+ unsigned long current_size = PROBLEM_ITEM_UNINITIALIZED_SIZE;
|
||||
assert(problem_item_get_size(itm, ¤t_size) == 0);
|
||||
assert(current_size != PROBLEM_ITEM_UNINITIALIZED_SIZE);
|
||||
assert(current_size == old_size);
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
Remove incorrect casts from tests/string_list.at
|
||||
|
||||
The list_order argument already has the correct pointer type const
|
||||
char * const * (after array-to-pointer decay).
|
||||
|
||||
Submitted upstream: <https://github.com/abrt/libreport/pull/802>
|
||||
|
||||
diff --git a/tests/string_list.at b/tests/string_list.at
|
||||
index 6af162a2f8da3919..2118298da4de0ec3 100644
|
||||
--- a/tests/string_list.at
|
||||
+++ b/tests/string_list.at
|
||||
@@ -22,13 +22,13 @@ int main(void)
|
||||
NULL
|
||||
};
|
||||
|
||||
- int index = libreport_index_of_string_in_list(FILENAME_REASON, (char**) list_order);
|
||||
+ int index = libreport_index_of_string_in_list(FILENAME_REASON, list_order);
|
||||
assert(index == 0);
|
||||
|
||||
- index = libreport_index_of_string_in_list(FILENAME_COUNT, (char**) list_order);
|
||||
+ index = libreport_index_of_string_in_list(FILENAME_COUNT, list_order);
|
||||
assert(index == 5);
|
||||
|
||||
- index = libreport_index_of_string_in_list("other", (char**) list_order);
|
||||
+ index = libreport_index_of_string_in_list("other", list_order);
|
||||
assert(index < 0);
|
||||
|
||||
return 0;
|
||||
261
libreport.spec
261
libreport.spec
|
|
@ -14,11 +14,13 @@
|
|||
|
||||
Summary: Generic library for reporting various problems
|
||||
Name: libreport
|
||||
Version: 2.17.15
|
||||
Release: 9%{?dist}
|
||||
License: GPL-2.0-or-later
|
||||
Version: 2.15.2
|
||||
Release: 4%{?dist}
|
||||
License: GPLv2+
|
||||
URL: https://abrt.readthedocs.org/
|
||||
Source: https://github.com/abrt/%{name}/archive/%{version}/%{name}-%{version}.tar.gz
|
||||
Patch0: 0001-reporter-bugzilla-Use-API-key-for-authentication.patch
|
||||
Patch1: 0002-reporter-bugzilla-send-API-key-in-HTTP-header.patch
|
||||
BuildRequires: %{dbus_devel}
|
||||
BuildRequires: gtk3-devel
|
||||
BuildRequires: curl-devel
|
||||
|
|
@ -33,7 +35,8 @@ BuildRequires: texinfo
|
|||
BuildRequires: asciidoc
|
||||
BuildRequires: xmlto
|
||||
BuildRequires: newt-devel
|
||||
BuildRequires: satyr-devel >= 0.38
|
||||
BuildRequires: libproxy-devel
|
||||
BuildRequires: satyr-devel >= 0.24
|
||||
BuildRequires: glib2-devel >= %{glib_ver}
|
||||
BuildRequires: git-core
|
||||
|
||||
|
|
@ -51,7 +54,7 @@ BuildRequires: augeas-devel
|
|||
BuildRequires: augeas
|
||||
BuildRequires: libarchive-devel
|
||||
Requires: libreport-filesystem = %{version}-%{release}
|
||||
Requires: satyr%{?_isa} >= 0.38
|
||||
Requires: satyr%{?_isa} >= 0.24
|
||||
Requires: glib2%{?_isa} >= %{glib_ver}
|
||||
Requires: libarchive%{?_isa}
|
||||
|
||||
|
|
@ -110,8 +113,6 @@ Requires: libreport >= %{version}-%{distfreerelease}
|
|||
Requires: libreport = %{version}-%{release}
|
||||
%endif
|
||||
Requires: python3-dnf
|
||||
Requires: python3-requests
|
||||
Requires: python3-urllib3
|
||||
%{?python_provide:%python_provide python3-libreport}
|
||||
|
||||
%description -n python3-libreport
|
||||
|
|
@ -190,14 +191,6 @@ email address.
|
|||
Summary: %{name}'s bugzilla plugin
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: libreport-web = %{version}-%{release}
|
||||
Requires: python3-libreport = %{version}-%{release}
|
||||
%if 0%{?fedora} >= 38
|
||||
Requires: python3-satyr
|
||||
Suggests: python3-pytest
|
||||
Suggests: python3-vcrpy
|
||||
%endif
|
||||
|
||||
|
||||
|
||||
%description plugin-bugzilla
|
||||
Plugin to report bugs into the bugzilla.
|
||||
|
|
@ -286,7 +279,7 @@ data over ftp/scp...
|
|||
%endif
|
||||
|
||||
%prep
|
||||
%autosetup
|
||||
%autosetup -p1
|
||||
|
||||
%build
|
||||
./autogen.sh
|
||||
|
|
@ -370,10 +363,6 @@ rm -f %{buildroot}%{_mandir}/man5/report_uReport.conf.5
|
|||
rm -f %{buildroot}%{_mandir}/man5/report_rhel_bugzilla.conf.5
|
||||
%endif
|
||||
|
||||
%if 0%{?fedora} >= 38
|
||||
mv %{buildroot}/%{_bindir}/reporter-bugzilla-python %{buildroot}/%{_bindir}/reporter-bugzilla
|
||||
%endif
|
||||
|
||||
%check
|
||||
make check|| {
|
||||
# find and print the logs of failed test
|
||||
|
|
@ -564,10 +553,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|||
%{_mandir}/man5/bugzilla_formatdup_analyzer_libreport.conf.5.*
|
||||
%{_mandir}/man5/bugzilla_format_kernel.conf.5.*
|
||||
%{_bindir}/reporter-bugzilla
|
||||
%if 0%{?fedora} < 38
|
||||
%{_bindir}/reporter-bugzilla-python
|
||||
%endif
|
||||
|
||||
%endif
|
||||
|
||||
%files plugin-mantisbt
|
||||
|
|
@ -635,7 +620,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|||
%{_mandir}/man5/report_fedora.conf.5.*
|
||||
%endif
|
||||
|
||||
%if %{with bugzilla}
|
||||
%if 0%{?rhel} && ! 0%{?eln}
|
||||
%files rhel-bugzilla
|
||||
%{_datadir}/%{name}/workflows/workflow_RHELBugzillaCCpp.xml
|
||||
|
|
@ -653,6 +637,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|||
%{_datadir}/%{name}/workflows/workflow_AnacondaRHELBugzilla.xml
|
||||
%endif
|
||||
|
||||
%if %{with bugzilla}
|
||||
%files anaconda
|
||||
%if 0%{?fedora} || 0%{?eln}
|
||||
%{_datadir}/%{name}/workflows/workflow_AnacondaFedora.xml
|
||||
|
|
@ -669,232 +654,12 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|||
%endif
|
||||
|
||||
%changelog
|
||||
* Fri Sep 19 2025 Python Maint <python-maint@redhat.com> - 2.17.15-9
|
||||
- Rebuilt for Python 3.14.0rc3 bytecode
|
||||
* Thu Mar 10 2022 Michal Srb <michal@redhat.com> - 2.15.2-4
|
||||
- [reporter-bugzilla] Always send API key in HTTP header
|
||||
|
||||
* Fri Aug 15 2025 Python Maint <python-maint@redhat.com> - 2.17.15-8
|
||||
- Rebuilt for Python 3.14.0rc2 bytecode
|
||||
|
||||
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.17.15-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||
|
||||
* Mon Jun 02 2025 Python Maint <python-maint@redhat.com> - 2.17.15-6
|
||||
- Rebuilt for Python 3.14
|
||||
|
||||
* Mon Jan 20 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.17.15-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||
|
||||
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.17.15-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||
|
||||
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.17.15-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Fri Jun 07 2024 Python Maint <python-maint@redhat.com> - 2.17.15-2
|
||||
- Rebuilt for Python 3.13
|
||||
|
||||
* Sun Feb 18 2024 Packit <hello@packit.dev> - 2.17.15-1
|
||||
- Release version 2.17.15 (Michal Srb)
|
||||
- reporter-bugzilla: Make the supplementary bugs easily identifiable (Michal Srb)
|
||||
- reporter-bugzilla: Fix formatting in the supplementary bugs (Michal Srb)
|
||||
- reporter-bugzilla: Fix code comment (Michal Srb)
|
||||
|
||||
* Mon Feb 12 2024 Packit <hello@packit.dev> - 2.17.14-1
|
||||
- Release version 2.17.14 (Michal Srb)
|
||||
- reporter-bugzilla: Reduce number of duplicate bug reports (Michal Srb)
|
||||
- reporter-bugzilla: Fix config loading (Michal Srb)
|
||||
- reporter-bugzilla: API key must consist of latin-1 characters (Michal Srb)
|
||||
- reporter-bugzilla: Fix typo (Michal Srb)
|
||||
- reporter-bugzilla: Fix creating binary attachments (Michal Srb)
|
||||
- Update translations (mgrabovsky)
|
||||
|
||||
* Sun Feb 04 2024 Packit <hello@packit.dev> - 2.17.13-1
|
||||
- Release version 2.17.13 (Michal Srb)
|
||||
- Exclude coredump archives when creating a bug (Michal Srb)
|
||||
|
||||
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.17.11-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Sun Jan 21 2024 Florian Weimer <fweimer@redhat.com> - 2.17.11-5
|
||||
- Fix C compatibility issues in tests
|
||||
|
||||
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.17.11-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.17.11-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Sat Jul 01 2023 Python Maint <python-maint@redhat.com> - 2.17.11-2
|
||||
- Rebuilt for Python 3.12
|
||||
|
||||
* Fri Jun 30 2023 Packit <hello@packit.dev> - 2.17.11-1
|
||||
- Release version 2.17.11 (Michal Srb)
|
||||
- spec: Add missing requires for python3-libreport (Michal Srb)
|
||||
- Build URL with urllib.parse.urljoin() (Michal Srb)
|
||||
- Add XDG_ACTIVATION_TOKEN to the list of ignored words (Michal Srb)
|
||||
- Attachments are minor updates in Bugzilla (Michal Srb)
|
||||
- Retry Bugzilla search queries with delays (Michal Srb)
|
||||
- Fix "NameError: name 'ticket' is not defined" exception (Michal Srb)
|
||||
- Update translations (mgrabovsky)
|
||||
|
||||
* Thu Jun 15 2023 Python Maint <python-maint@redhat.com> - 2.17.10-2
|
||||
- Rebuilt for Python 3.12
|
||||
|
||||
* Thu May 11 2023 Packit <hello@packit.dev> - 2.17.10-1
|
||||
- Release version 2.17.10 (Matěj Grabovský)
|
||||
- reporter-upload: Fix a use-after-free error in string handling (Matěj Grabovský)
|
||||
- Update translations (mgrabovsky)
|
||||
- Update translations (mgrabovsky)
|
||||
|
||||
* Fri Mar 24 2023 Packit <hello@packit.dev> - 2.17.9-1
|
||||
- Release version 2.17.9 (Michal Srb)
|
||||
- reporter-bugzilla: Fix string interpolation (Matěj Grabovský)
|
||||
- reporter-bugzilla: Replace flags with just keyword arg (Michal Srb)
|
||||
- reporter-bugzilla: Make sure that the creator of a bug is always in CC (Michal Srb)
|
||||
- reporter-bugzilla: Don't fail if reported_to file doesn't exist (Michal Srb)
|
||||
- reporter-bugzilla: Fix reporting when the bug already exists (Michal Srb)
|
||||
- use $XDG_CONFIG_HOME to access user's configuration files (Yann Droneaud)
|
||||
- Update translations (mgrabovsky)
|
||||
|
||||
* Fri Mar 03 2023 Packit <hello@packit.dev> - 2.17.8-1
|
||||
- Release version 2.17.8 (Michal Srb)
|
||||
- Update changelog (Michal Srb)
|
||||
- reporter-bugzilla: Fix KeyError when HOME env var is not set (Michal Srb)
|
||||
- Update changelog (Michal Srb)
|
||||
- reporter-bugzilla: Fix password prompt in client/server mode (Michal Srb)
|
||||
|
||||
* Mon Feb 20 2023 Packit <hello@packit.dev> - 2.17.7-1
|
||||
- Release version 2.17.7 (Michal Srb)
|
||||
- spec: Add disttag (Michal Srb)
|
||||
- Update changelog (Michal Srb)
|
||||
- Fix rpm -V issue with missing reporter-bugzilla-python in f38 (Michal Srb)
|
||||
- Fix TypeError (Michal Srb)
|
||||
- Update pot file (Matěj Grabovský)
|
||||
- readme: Add diagram of related projects (Matěj Grabovský)
|
||||
- Update translations (mgrabovsky)
|
||||
- Use SPDX format for license field (Matěj Grabovský)
|
||||
- ignored_words: Add KeyboardInterrupt (Michal Fabik)
|
||||
- packit: Add dependencies for SRPM build (Matěj Grabovský)
|
||||
- Update translations (mgrabovsky)
|
||||
|
||||
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.17.6-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Sun Nov 06 2022 Packit <hello@packit.dev> - 2.17.6-1
|
||||
- Release version 2.17.6 (Michal Srb)
|
||||
- Update translations (mgrabovsky)
|
||||
- Update changelog (Michal Srb)
|
||||
- reporter-bugzilla: Fix TypeError (Michal Srb)
|
||||
|
||||
* Mon Oct 24 2022 Michal Srb <michal@redhat.com> - 2.17.5-2
|
||||
- Fix dist-tag
|
||||
|
||||
* Mon Oct 24 2022 Packit <hello@packit.dev> - 2.17.5-1
|
||||
- Release version 2.17.5 (Michal Srb)
|
||||
- Update changelog (Michal Srb)
|
||||
- dump_dir.py: check that the filename doesn't start with "/" (Michal Srb)
|
||||
- dump_dir.py: Don't pass libreport flags to open() (Michal Srb)
|
||||
- reporter-bugzilla: Fix exceptions (Michal Srb)
|
||||
- Update translations (mgrabovsky)
|
||||
|
||||
* Wed Sep 14 2022 Packit <hello@packit.dev> - 2.17.4-1
|
||||
- Release version 2.17.4 (Michal Fabik)
|
||||
- Update changelog (Michal Fabik)
|
||||
- reporter_bugzilla.py: Don't ask for API key if we already have it (Michal Srb)
|
||||
- internal/bz_connection.py: Fix "TypeError: 'builtin_function_or_method' object is not subscriptable" (Michal Srb)
|
||||
- reporter_bugzilla.py: Fix condition (Michal Srb)
|
||||
- internal/reported_to.py: Prevent possible ValueError if the line is for example empty (Michal Srb)
|
||||
- reporter_bugzilla.py: Prevent possible KeyError exception (Michal Srb)
|
||||
- reporter_bugzilla.py: Default value for `b_create_private` is False (Michal Srb)
|
||||
- reporter_bugzilla.py: Prevent possible KeyError exception (Michal Srb)
|
||||
|
||||
* Mon Sep 12 2022 Packit <hello@packit.dev> - 2.17.3-1
|
||||
- Release version 2.17.3 (Michal Fabik)
|
||||
- Update changelog (Michal Fabik)
|
||||
- Run autoupdate to get rid of obsolete/deprecated macros (Michal Fabik)
|
||||
- Makefile: Move README.md to EXTRA_DIST (Michal Fabik)
|
||||
- Don't build rhel-bugzilla --without-bugzilla (Michal Fabik)
|
||||
- doc: Make anaconda_event.conf depend on BZ (Michal Fabik)
|
||||
- Fix build --without-bugzilla (Michal Fabik)
|
||||
- spec: Don't list files twice (Michal Fabik)
|
||||
- Update translations (mgrabovsky)
|
||||
|
||||
* Thu Aug 18 2022 Packit <hello@packit.dev> - 2.17.2-1
|
||||
- Release version 2.17.2 (Michal Fabik)
|
||||
- reporter_bugzilla.py: Build, install (Michal Fabik)
|
||||
- reporter_bugzilla.py: Add tests (Michal Fabik)
|
||||
- reporter_bugzilla.py: Initial commit (Michal Fabik)
|
||||
- Update translations (mgrabovsky)
|
||||
- abrt_xmlrpc: Don't warn about discarded const (Michal Fabik)
|
||||
- Update translations (mgrabovsky)
|
||||
- Update translations (mgrabovsky)
|
||||
- Use conventional lseek arg order (Michal Fabik)
|
||||
- Update translations (mgrabovsky)
|
||||
- ignored_words: Ignore more debuginfod URLs (Matěj Grabovský)
|
||||
|
||||
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.17.1-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 2.17.1-2
|
||||
- Rebuilt for Python 3.11
|
||||
|
||||
* Thu Mar 10 2022 Packit Service <user-cont-team+packit-service@redhat.com> - 2.17.1-1
|
||||
- Release version 2.17.1 (Michal Srb)
|
||||
- reporter-bugzilla: send API key in HTTP header (Michal Srb)
|
||||
- tito: Use custom tagger that updates changelog (Matěj Grabovský)
|
||||
- changelog: Fix link to release diff (Matěj Grabovský)
|
||||
- reporter-bugzilla: Fix APIKey name (Michal Fabik)
|
||||
- Update translations (mgrabovsky)
|
||||
- Add missing va_end (Michal Židek)
|
||||
|
||||
* Mon Feb 21 2022 Michal Srb <michal@redhat.com> - 2.17.0-1
|
||||
* Mon Feb 21 2022 Michal Srb <michal@redhat.com> - 2.15.2-3
|
||||
- [reporter-bugzilla] Use API key for authentication
|
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.16.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Wed Jan 19 2022 Matěj Grabovský <mgrabovs@redhat.com> - 2.16.0-2
|
||||
- Rebuild for testing
|
||||
|
||||
* Mon Jan 17 2022 Matěj Grabovský <mgrabovs@redhat.com> - 2.16.0-1
|
||||
- Bump satyr dependency to 0.38
|
||||
- Bump libreport library revision to 2:1:0
|
||||
- Drop build-time dependency on libproxy-devel
|
||||
- Drop last reference to global_uuid file
|
||||
- Don't use deprecated assertEquals() in tests
|
||||
- Add DEBUGINFOD_URLS environment variable to ignored_words
|
||||
- rhbz: Retry XML-RPC calls when uploading attachments
|
||||
- rhbz: Be a little bit more defensive when working with subcomponents
|
||||
- Update translations
|
||||
|
||||
* Thu Jan 13 2022 Matěj Grabovský <mgrabovs@redhat.com> - 2.15.2-11
|
||||
- Backport patch for building with Python 3.11
|
||||
(https://bugzilla.redhat.com/show_bug.cgi?id=2019402)
|
||||
|
||||
* Wed Jan 12 2022 Matěj Grabovský <mgrabovs@redhat.com> - 2.15.2-10
|
||||
- Bump for rebuild
|
||||
|
||||
* Thu Jan 06 2022 Matěj Grabovský <mgrabovs@redhat.com> - 2.15.2-9
|
||||
- Bump release for rebuild
|
||||
|
||||
* Thu Jan 06 2022 Matěj Grabovský <mgrabovs@redhat.com> - 2.15.2-8
|
||||
- Bump release for rebuild
|
||||
|
||||
* Wed Dec 22 2021 Matěj Grabovský <mgrabovs@redhat.com> - 2.15.2-7
|
||||
- Rebuild for satyr 0.39
|
||||
|
||||
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.15.2-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Sat Jul 10 2021 Björn Esser <besser82@fedoraproject.org> - 2.15.2-5
|
||||
- Rebuild for versioned symbols in json-c
|
||||
|
||||
* Mon Jun 07 2021 Python Maint <python-maint@redhat.com> - 2.15.2-4
|
||||
- Rebuilt for Python 3.10
|
||||
|
||||
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 2.15.2-2
|
||||
- Rebuilt for Python 3.10
|
||||
|
||||
* Tue Jun 01 2021 Packit Service <user-cont-team+packit-service@redhat.com> - 2.15.2-1
|
||||
- Release version 2.15.2-1 (Michal Fabik)
|
||||
- binhex: Remove unused API (Matěj Grabovský)
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (libreport-2.17.15.tar.gz) = a4707f5272f037f91b4f4b562d3f0eb165ae7790699714accdd1af40216f37bd40d430a06925b1b7b8ac2d2cf97fd0cc4efded51dc22d21d9ef2abedf796e5fe
|
||||
SHA512 (libreport-2.15.2.tar.gz) = c98003325fa70d674177c9f602a7f121815a9675701ee780ad8908ed69862f2c69be65c7483fd3f017ba299dda51ba304f0908c771c9d97cb5bba057e3a9c5dc
|
||||
|
|
|
|||
|
|
@ -1,11 +0,0 @@
|
|||
#!/usr/bin/bash
|
||||
|
||||
gcc -x c -o smoke_test -lreport -Wno-implicit-function-declaration - <<EOF
|
||||
#include <stdio.h>
|
||||
int main(void) {
|
||||
libreport_init();
|
||||
printf("libreport initialized OK\n");
|
||||
return 0;
|
||||
}
|
||||
EOF
|
||||
./smoke_test
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
summary: Basic smoke test for libreport
|
||||
prepare:
|
||||
how: install
|
||||
# Do not attempt to install conflicting subpackages.
|
||||
exclude:
|
||||
- abrt-atomic
|
||||
- abrt-java-connector-container
|
||||
- python3-abrt-container-addon
|
||||
# Prerequisite for smoke testing liblibreport.
|
||||
package:
|
||||
- gcc
|
||||
execute:
|
||||
script: |
|
||||
tests/library-smoke.sh
|
||||
report-cli --version
|
||||
Loading…
Add table
Add a link
Reference in a new issue