public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Matej Habrnal <mhabrnal@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/abrt] update-2.17.8: Fix broken pipe error in a-a-install-debuginfo
Date: Mon, 03 Aug 2026 10:23:20 GMT	[thread overview]
Message-ID: <178575260024.1.16854656821276466512.rpms-abrt-cd3efeaff4bd@fedoraproject.org> (raw)

            A new commit has been pushed.

            Repo   : rpms/abrt
            Branch : update-2.17.8
            Commit : cd3efeaff4bdc21a49cf8049df8cb146a8b2bf5b
            Author : Matej Habrnal <mhabrnal@redhat.com>
            Date   : 2016-04-11T09:50:01+02:00
            Stats  : +680/-7 in 6 file(s)
            URL    : https://src.fedoraproject.org/rpms/abrt/c/cd3efeaff4bdc21a49cf8049df8cb146a8b2bf5b?branch=update-2.17.8

            Log:
            Fix broken pipe error in a-a-install-debuginfo

Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>

---
diff --git a/0012-a-a-install-debuginfo-make-tmpdir-variable-global.patch b/0012-a-a-install-debuginfo-make-tmpdir-variable-global.patch
new file mode 100644
index 0000000..9d55553
--- /dev/null
+++ b/0012-a-a-install-debuginfo-make-tmpdir-variable-global.patch
@@ -0,0 +1,85 @@
+From a836ddd2277b05e1d7404cf6480a3ed8cc4807a4 Mon Sep 17 00:00:00 2001
+From: Matej Habrnal <mhabrnal@redhat.com>
+Date: Tue, 8 Mar 2016 16:42:31 +0100
+Subject: [PATCH] a-a-install-debuginfo: make tmpdir variable global
+
+Function clean_up() has one required parameter tmpdir.
+Without this commit clean_up() function raises an exception because it was
+called without the parameter.
+
+Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
+---
+ src/plugins/abrt-action-install-debuginfo.in | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/src/plugins/abrt-action-install-debuginfo.in b/src/plugins/abrt-action-install-debuginfo.in
+index f70ebcd..7818ffd 100644
+--- a/src/plugins/abrt-action-install-debuginfo.in
++++ b/src/plugins/abrt-action-install-debuginfo.in
+@@ -20,7 +20,8 @@ import problem
+ RETURN_OK = 0
+ # serious problem, should be logged somewhere
+ RETURN_FAILURE = 2
+-
++# path to tmp directory has to be global because of clean_up()
++TMPDIR = None
+ 
+ GETTEXT_PROGNAME = "abrt"
+ import locale
+@@ -43,11 +44,11 @@ def init_gettext():
+     gettext.textdomain(GETTEXT_PROGNAME)
+ 
+ def sigterm_handler(signum, frame):
+-    clean_up()
++    clean_up(TMPDIR)
+     exit(RETURN_OK)
+ 
+ def sigint_handler(signum, frame):
+-    clean_up()
++    clean_up(TMPDIR)
+     print("\n{0}".format(_("Exiting on user command")))
+     sys.stdout.flush()
+     # ??! without "sys.", I am getting segv!
+@@ -63,7 +64,6 @@ if __name__ == "__main__":
+     fbuild_ids = "build_ids"
+     cachedirs = []
+     size_mb = 4096
+-    tmpdir = None
+     keeprpms = False
+     noninteractive = False
+     b_ids = []
+@@ -135,7 +135,7 @@ if __name__ == "__main__":
+             except:
+                 pass
+         elif opt == "--tmpdir":
+-            tmpdir = arg
++            TMPDIR = arg
+         elif opt == "--keeprpms":
+             keeprpms = True
+         # --exact takes precendece over --ids
+@@ -159,11 +159,11 @@ if __name__ == "__main__":
+ 
+         if not cachedirs:
+             cachedirs = ["/var/cache/abrt-di"]
+-    if not tmpdir:
++    if not TMPDIR:
+         # security people prefer temp subdirs in app's private dir, like /var/run/abrt
+         # and we switched to /tmp but Fedora feature tmp-on-tmpfs appeared, hence we must
+         # not use /tmp for potential big data anymore
+-        tmpdir = "@LARGE_DATA_TMP_DIR@/abrt-tmp-debuginfo-%s.%u" % (time.strftime("%Y-%m-%d-%H:%M:%S"), os.getpid())
++        TMPDIR = "@LARGE_DATA_TMP_DIR@/abrt-tmp-debuginfo-%s.%u" % (time.strftime("%Y-%m-%d-%H:%M:%S"), os.getpid())
+ 
+ 
+     if missing == None:
+@@ -235,7 +235,7 @@ if __name__ == "__main__":
+             sys.exit(RETURN_FAILURE)
+ 
+         # TODO: should we pass keep_rpms=keeprpms to DebugInfoDownload here??
+-        downloader = download_class(cache=cachedirs[0], tmp=tmpdir,
++        downloader = download_class(cache=cachedirs[0], tmp=TMPDIR,
+                                     noninteractive=noninteractive,
+                                     repo_pattern=repo_pattern)
+         try:
+-- 
+2.5.5
+

diff --git a/0013-a-a-install-debuginfo-fix-BrokenPipe-error.patch b/0013-a-a-install-debuginfo-fix-BrokenPipe-error.patch
new file mode 100644
index 0000000..07169a3
--- /dev/null
+++ b/0013-a-a-install-debuginfo-fix-BrokenPipe-error.patch
@@ -0,0 +1,49 @@
+From 2c48b73b5d449df26053d5d95f98f2ef01610d46 Mon Sep 17 00:00:00 2001
+From: Matej Habrnal <mhabrnal@redhat.com>
+Date: Tue, 8 Mar 2016 16:45:36 +0100
+Subject: [PATCH] a-a-install-debuginfo: fix BrokenPipe error
+
+While debug info is downloading and stop button is pressed the BrokenPipe
+error appears.
+
+If the stop button is pressed, gui wizard sends SIGTERM to all
+processes with the same group ID so abrt-action-install-debuginfo got SIGTERM
+as well. It has its own SIGTERM handler which calls clean_up() function and it
+takes a while before the tool is terminated.
+abrt-action-install-debuginfo tries to write some messages to the closed socket
+during the clean_up process and it raises a BrokenPipe exception. We must
+ensure that no message will be printed after SIGTERM is recieved.
+
+Related to: #1255259
+
+Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
+---
+ src/plugins/abrt-action-install-debuginfo.in | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/plugins/abrt-action-install-debuginfo.in b/src/plugins/abrt-action-install-debuginfo.in
+index 7818ffd..e4a7dfd 100644
+--- a/src/plugins/abrt-action-install-debuginfo.in
++++ b/src/plugins/abrt-action-install-debuginfo.in
+@@ -44,7 +44,7 @@ def init_gettext():
+     gettext.textdomain(GETTEXT_PROGNAME)
+ 
+ def sigterm_handler(signum, frame):
+-    clean_up(TMPDIR)
++    clean_up(TMPDIR, silent=True)
+     exit(RETURN_OK)
+ 
+ def sigint_handler(signum, frame):
+@@ -241,6 +241,9 @@ if __name__ == "__main__":
+         try:
+             result = downloader.download(missing, download_exact_files=exact_fls)
+         except Exception as ex:
++            if ex.errno == errno.EPIPE:
++                clean_up(TMPDIR, silent=True)
++                exit(RETURN_FAILURE)
+             error_msg_and_die("Can't download debuginfos: %s", ex)
+ 
+         if exact_fls:
+-- 
+2.5.5
+

diff --git a/0014-Add-basic-documentation.patch b/0014-Add-basic-documentation.patch
new file mode 100644
index 0000000..74da14f
--- /dev/null
+++ b/0014-Add-basic-documentation.patch
@@ -0,0 +1,282 @@
+From 0020bf80cda35ee0ce0ecf91023f3abcc1c4d26d Mon Sep 17 00:00:00 2001
+From: Jakub Filak <jfilak@redhat.com>
+Date: Sat, 20 Feb 2016 08:27:32 +0100
+Subject: [PATCH] Add basic documentation
+
+Signed-off-by: Jakub Filak <jfilak@redhat.com>
+---
+ CONTRIBUTING.md | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ INSTALL         |  7 -----
+ INSTALL.md      | 56 ++++++++++++++++++++++++++++++++++
+ Makefile.am     |  2 ++
+ README          | 11 -------
+ README.md       | 48 +++++++++++++++++++++++++++++
+ 6 files changed, 200 insertions(+), 18 deletions(-)
+ create mode 100644 CONTRIBUTING.md
+ delete mode 100644 INSTALL
+ create mode 100644 INSTALL.md
+ delete mode 100644 README
+ create mode 100644 README.md
+
+diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
+new file mode 100644
+index 0000000..4b27138
+--- /dev/null
++++ b/CONTRIBUTING.md
+@@ -0,0 +1,94 @@
++# Contributing to ABRT
++
++Adopted from http://www.contribution-guide.org/
++
++BSD, Copyright (c) 2015 Jeff Forcier
++
++## Submitting bugs
++
++### Due diligence
++
++Before submitting a bug, please do the following:
++
++* Perform **basic troubleshooting** steps:
++
++    * **Make sure you're on the latest version.** If you're not on the most
++      recent version, your problem may have been solved already! Upgrading is
++      always the best first step.
++    * **Try older versions.** If you're already *on* the latest release, try
++      rolling back a few minor versions (e.g. if on 1.7, try 1.5 or 1.6) and
++      see if the problem goes away. This will help the devs narrow down when
++      the problem first arose in the commit log.
++    * **Try switching up dependency versions.** If the software in question has
++      dependencies (other libraries, etc) try upgrading/downgrading those as
++      well.
++
++* **Search the project's bug/issue tracker** to make sure it's not a known issue.
++* If you don't find a pre-existing issue, consider **checking with the mailing
++  list and/or IRC channel** in case the problem is non-bug-related.
++* Consult [README.md](README.md) for links to bugtracker, mailinglist or IRC.
++
++### What to put in your bug report
++
++Make sure your report gets the attention it deserves: bug reports with missing
++information may be ignored or punted back to you, delaying a fix. The below
++constitutes a bare minimum; more info is almost always better:
++
++* **What version of the core programming language interpreter/compiler are you
++  using?** For example, if it's a Python project, are you using Python 2.7.3?
++  Python 3.3.1? PyPy 2.0?
++* **What operating system are you on?** Make sure to include release and distribution.
++* **Which version or versions of the software are you using?** Ideally, you
++  followed the advice above and have ruled out (or verified that the problem
++  exists in) a few different versions.
++* **How can the developers recreate the bug on their end?** If possible,
++  include a copy of your code, the command you used to invoke it, and the full
++  output of your run (if applicable.)
++
++    * A common tactic is to pare down your code until a simple (but still
++      bug-causing) "base case" remains. Not only can this help you identify
++      problems which aren't real bugs, but it means the developer can get to
++      fixing the bug faster.
++
++
++## Contributing changes
++
++It would be the best if you could discuss your plans with us on #abrt or on our
++mailinig list crash-catcher@lists.fedorahosted.org before you spent too much
++energy and time.
++
++Before contributing, please, make yourself familiar with git. You can [try git
++online](https://try.github.io/). Things would be easier for all of us if you do
++your changes on a branch. Use a single commit for every logical reviewable
++change, without unrelated modifications (that will help us if need to revert a
++particular commit). Please avoid adding commits fixing your previous
++commits, do amend or rebase instead.
++
++Every commit must have either comprehensive commit message saying what is being
++changed and why or a link (an issue number on Github) to a bug report where
++this information is available. It is also useful to include notes about
++negative decisions - i.e. why you decided to not do particular things. Please
++bare in mind that other developers might not understand what the original
++problem was.
++
++### Full example
++
++Here's an example workflow for a project `abrt` hosted on Github
++Your username is `yourname` and you're submitting a basic bugfix or feature.
++
++* Hit 'fork' on Github, creating e.g. `yourname/abrt`.
++* `git clone git@github.com:yourname/abrt`
++* `cd abrt`
++* `git checkout -b foo_the_bars` to create new local branch named foo_the_bars
++* Hack, hack, hack
++* Run `make check`
++* `git status`
++* `git add`
++* `git commit -s -m "Foo the bars"`
++* `git push -u origin HEAD` to create foo_the_bars branch in your fork
++* Visit your fork at Github and click handy "Pull request" button.
++* In the description field, write down issue number (if submitting code fixing
++  an existing issue) or describe the issue + your fix (if submitting a wholly
++  new bugfix).
++* Hit 'submit'! And please be patient - the maintainers will get to you when
++  they can.
+diff --git a/INSTALL b/INSTALL
+deleted file mode 100644
+index 799a4a6..0000000
+--- a/INSTALL
++++ /dev/null
+@@ -1,7 +0,0 @@
+-How to install
+-==============
+-
+-1. autogen.sh
+-2. ./configure
+-3. make
+-4. make install
+diff --git a/INSTALL.md b/INSTALL.md
+new file mode 100644
+index 0000000..96d42c4
+--- /dev/null
++++ b/INSTALL.md
+@@ -0,0 +1,56 @@
++# How to install
++
++### Development dependencies
++
++Build dependencies can be listed by:
++
++    $ ./autogen.sh sysdeps
++
++or installed by:
++
++    $ ./autogen.sh sysdeps --install
++
++The dependency installer gets the data from [the rpm spec file](abrt.spec.in)
++
++### Building from sources
++
++When you have all dependencies installed run the following commands:
++
++    $ ./autogen.sh --prefix=/usr \
++                   --sysconfdir=/etc \
++                   --localstatedir=/var \
++                   --sharedstatedir=/var/lib
++
++    $ make
++
++or if you want to debug ABRT run:
++
++    $ CFLAGS="-g -g3 -ggdb -ggdb3 -O0" ./autogen.sh --prefix=/usr \
++                                                    --sysconfdir=/etc \
++                                                    --localstatedir=/var \
++                                                    --sharedstatedir=/var/lib \
++                                                    --enable-debug
++
++    $ make
++
++### Checking
++
++ABRT uses [Autotest](http://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Using-Autotest.html)
++to validate source codes. Run the test by:
++
++    $ make check
++
++If you want to search for memory issues, build ABRT with debug options and then
++run:
++
++    $ make maintainer-check
++
++### Installing
++
++If you need an rpm package, run:
++
++    $ make rpm
++
++otherwise run:
++
++    $ make install
+diff --git a/Makefile.am b/Makefile.am
+index 01b8a97..e528c93 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -36,6 +36,8 @@ EXTRA_DIST = doc/coding-style abrt.spec.in abrt.pc.in \
+ 	abrt-version asciidoc.conf init-scripts/* $(TESTSUITE_FILES) \
+ 	augeas/test_abrt.aug
+ 
++dist_doc_DATA = README.md
++
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = abrt.pc
+ 
+diff --git a/README b/README
+deleted file mode 100644
+index 26cbbcb..0000000
+--- a/README
++++ /dev/null
+@@ -1,11 +0,0 @@
+-These sources are in early stages. They are changing every day :-)...
+-Anyway, patches are welcome.
+-
+-** Using Valgrind
+-
+-When running ABRT under memcheck, GLib's environment variables should
+-be set to turn off glib's memory optimization, so valgrind is not
+-confused:
+-
+-G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind --tool=memcheck \
+-  --leak-check=full abrtd -dvvv
+diff --git a/README.md b/README.md
+new file mode 100644
+index 0000000..e58a499
+--- /dev/null
++++ b/README.md
+@@ -0,0 +1,48 @@
++# ABRT
++
++**A set of tools to help users detect and report application crashes.**
++
++### About
++
++Its main purpose is to ease the process of reporting an issue and finding a
++solution.
++
++The solution in this context might be a bugzilla ticket, knowledge base article
++or a suggestion to update a package to a version containing a fix.
++
++### Documentation
++
++Every ABRT program and configuration file has a man page describing it. It is
++also possible to [read the ABRT documentation](http://abrt.readthedocs.org/)
++online. For contributors and developers, there are also [wiki
++pages](https://github.com/abrt/abrt/wiki) describing some topics to deeper
++technical details.
++
++### Development
++
++ * IRC Channel: #abrt on FreeNode
++ * [Mailing List](https://lists.fedorahosted.org/admin/lists/crash-catcher.lists.fedorahosted.org/)
++ * [Bug Reports and RFEs](https://github.com/abrt/abrt/issues)
++ * [Contributing to ABRT](CONTRIBUTING.md)
++ * [Install and run ABRT](INSTALL.md)
++
++
++### Running
++
++ABRT consist of several services and many small utilities. While The utilities
++can be successfully run from the source directories after build, the services
++often uses the utilities to do actions and expect the utilities installed in
++the system directories. Hence to run the services, it is recommended to install
++ABRT first and run them as system services. The instructions how to build
++and install ABRT can be found in [INSTALL.md](INSTALL.md)
++
++### Technologies
++
++* [libreport](https://github.com/abrt/libreport) - problem data format, reporting
++* [satyr](https://github.com/abrt/satyr) - backtrace processing, micro-reports
++* [Python3](https://www.python.org/)
++* [GLib2](https://developer.gnome.org/glib/)
++* [Gtk3](https://developer.gnome.org/gtk3)
++* [D-Bus](https://www.freedesktop.org/wiki/Software/dbus/)
++* [SELinux](https://github.com/SELinuxProject/selinux/wiki)
++* [systemd](https://www.freedesktop.org/wiki/Software/systemd/)
+-- 
+2.5.5
+

diff --git a/0021-Save-Vendor-and-GPG-Fingerprint.patch b/0021-Save-Vendor-and-GPG-Fingerprint.patch
new file mode 100644
index 0000000..4f9f382
--- /dev/null
+++ b/0021-Save-Vendor-and-GPG-Fingerprint.patch
@@ -0,0 +1,232 @@
+From 451e57fc509f401bb586e7db88256923d47c38f7 Mon Sep 17 00:00:00 2001
+From: Matej Habrnal <mhabrnal@redhat.com>
+Date: Tue, 9 Feb 2016 16:53:21 +0100
+Subject: [PATCH] Save Vendor and GPG Fingerprint
+
+Red Hat keys can be found at:
+  https://access.redhat.com/security/team/key
+
+Related: #1258474
+---
+ src/daemon/abrt-action-save-package-data.c    | 34 ++++++++++++++++++++-----
+ src/daemon/abrt-action-save-package-data.conf |  7 ++++++
+ src/daemon/rpm.c                              | 36 +++++++++++++++++++--------
+ src/daemon/rpm.h                              | 15 +++++++++++
+ src/plugins/abrt-action-save-kernel-data      |  6 +++++
+ 5 files changed, 82 insertions(+), 16 deletions(-)
+
+diff --git a/src/daemon/abrt-action-save-package-data.c b/src/daemon/abrt-action-save-package-data.c
+index 72c9878..05cbd1a 100644
+--- a/src/daemon/abrt-action-save-package-data.c
++++ b/src/daemon/abrt-action-save-package-data.c
+@@ -231,6 +231,7 @@ static int SavePackageDescriptionToDebugDump(const char *dump_dir_name, const ch
+     char *executable = NULL;
+     char *rootdir = NULL;
+     char *package_short_name = NULL;
++    char *fingerprint = NULL;
+     struct pkg_envra *pkg_name = NULL;
+     char *component = NULL;
+     int error = 1;
+@@ -324,13 +325,12 @@ static int SavePackageDescriptionToDebugDump(const char *dump_dir_name, const ch
+         goto ret; /* return 1 (failure) */
+     }
+ 
+-    if (settings_bOpenGPGCheck)
++    fingerprint = rpm_get_fingerprint(package_short_name);
++    if (!(fingerprint != NULL && rpm_fingerprint_is_imported(fingerprint))
++         && settings_bOpenGPGCheck)
+     {
+-        if (!rpm_chk_fingerprint(package_short_name))
+-        {
+-            log("Package '%s' isn't signed with proper key", package_short_name);
+-            goto ret; /* return 1 (failure) */
+-        }
++        log("Package '%s' isn't signed with proper key", package_short_name);
++        goto ret; /* return 1 (failure) */
+         /* We used to also check the integrity of the executable here:
+          *  if (!CheckHash(package_short_name.c_str(), executable)) BOOM();
+          * Checking the MD5 sum requires to run prelink to "un-prelink" the
+@@ -353,6 +353,27 @@ static int SavePackageDescriptionToDebugDump(const char *dump_dir_name, const ch
+         dd_save_text(dd, FILENAME_PKG_VERSION, pkg_name->p_version);
+         dd_save_text(dd, FILENAME_PKG_RELEASE, pkg_name->p_release);
+         dd_save_text(dd, FILENAME_PKG_ARCH, pkg_name->p_arch);
++        dd_save_text(dd, FILENAME_PKG_VENDOR, pkg_name->p_vendor);
++
++        if (fingerprint)
++        {
++            /* 16 character + 3 spaces + 1 '\0' + 2 Bytes for errors :) */
++            char key_fingerprint[22] = {0};
++
++            /* The condition is just a defense against errors */
++            for (size_t i = 0, j = 0; j < sizeof(key_fingerprint) - 2; )
++            {
++                key_fingerprint[j++] = toupper(fingerprint[i++]);
++
++                if (fingerprint[i] == '\0')
++                    break;
++
++                if (!(i & (0x3)))
++                    key_fingerprint[j++] = ' ';
++            }
++
++            dd_save_text(dd, FILENAME_PKG_FINGERPRINT, key_fingerprint);
++        }
+     }
+ 
+     if (component)
+@@ -369,6 +390,7 @@ static int SavePackageDescriptionToDebugDump(const char *dump_dir_name, const ch
+     free(package_short_name);
+     free_pkg_envra(pkg_name);
+     free(component);
++    free(fingerprint);
+ 
+     return error;
+ }
+diff --git a/src/daemon/abrt-action-save-package-data.conf b/src/daemon/abrt-action-save-package-data.conf
+index 58f5061..295e03a 100644
+--- a/src/daemon/abrt-action-save-package-data.conf
++++ b/src/daemon/abrt-action-save-package-data.conf
+@@ -3,6 +3,13 @@
+ # the list of public keys used to check the signature is
+ # in the file gpg_keys
+ #
++# How can I check the GPG key used to sign an installed pacakge on
++# Red hat Enterprise Linux:
++# https://access.redhat.com/solutions/1120013
++#
++# Product Signing (GPG) Keys:
++# https://access.redhat.com/security/team/key
++#
+ OpenGPGCheck = yes
+ 
+ # Blacklisted packages
+diff --git a/src/daemon/rpm.c b/src/daemon/rpm.c
+index b613f77..e99b960 100644
+--- a/src/daemon/rpm.c
++++ b/src/daemon/rpm.c
+@@ -99,7 +99,22 @@ void rpm_load_gpgkey(const char* filename)
+ 
+ int rpm_chk_fingerprint(const char* pkg)
+ {
+-    int ret = 0;
++    char *fingerprint = rpm_get_fingerprint(pkg);
++    int res = 0;
++    if (fingerprint)
++        res = rpm_fingerprint_is_imported(fingerprint);
++    free(fingerprint);
++    return res;
++}
++
++int rpm_fingerprint_is_imported(const char* fingerprint)
++{
++    return !!g_list_find_custom(list_fingerprints, fingerprint, (GCompareFunc)g_strcmp0);
++}
++
++char *rpm_get_fingerprint(const char *pkg)
++{
++    char *fingerprint = NULL;
+     char *pgpsig = NULL;
+     const char *errmsg = NULL;
+ 
+@@ -117,20 +132,15 @@ int rpm_chk_fingerprint(const char* pkg)
+         goto error;
+     }
+ 
+-    {
+-        char *pgpsig_tmp = strstr(pgpsig, " Key ID ");
+-        if (pgpsig_tmp)
+-        {
+-            pgpsig_tmp += sizeof(" Key ID ") - 1;
+-            ret = g_list_find_custom(list_fingerprints, pgpsig_tmp, (GCompareFunc)g_strcmp0) != NULL;
+-        }
+-    }
++    char *pgpsig_tmp = strstr(pgpsig, " Key ID ");
++    if (pgpsig_tmp)
++        fingerprint = xstrdup(pgpsig_tmp + sizeof(" Key ID ") - 1);
+ 
+ error:
+     free(pgpsig);
+     rpmdbFreeIterator(iter);
+     rpmtsFree(ts);
+-    return ret;
++    return fingerprint;
+ }
+ 
+ /*
+@@ -256,6 +266,7 @@ pkg_add_id(name);
+ pkg_add_id(version);
+ pkg_add_id(release);
+ pkg_add_id(arch);
++pkg_add_id(vendor);
+ 
+ // caller is responsible to free returned value
+ struct pkg_envra *rpm_get_package_nvr(const char *filename, const char *rootdir_or_NULL)
+@@ -303,6 +314,10 @@ struct pkg_envra *rpm_get_package_nvr(const char *filename, const char *rootdir_
+     if (r)
+         goto error;
+ 
++    r = pkg_add_vendor(header, p);
++    if (r)
++        goto error;
++
+     p->p_nvr = xasprintf("%s-%s-%s", p->p_name, p->p_version, p->p_release);
+ 
+     rpmdbFreeIterator(iter);
+@@ -322,6 +337,7 @@ void free_pkg_envra(struct pkg_envra *p)
+     if (!p)
+         return;
+ 
++    free(p->p_vendor);
+     free(p->p_epoch);
+     free(p->p_name);
+     free(p->p_version);
+diff --git a/src/daemon/rpm.h b/src/daemon/rpm.h
+index 1b90368..89aa088 100644
+--- a/src/daemon/rpm.h
++++ b/src/daemon/rpm.h
+@@ -38,6 +38,7 @@ struct pkg_envra {
+     char *p_version;
+     char *p_release;
+     char *p_arch;
++    char *p_vendor;
+ };
+ 
+ void free_pkg_envra(struct pkg_envra *p);
+@@ -69,6 +70,20 @@ void rpm_load_gpgkey(const char* filename);
+ int rpm_chk_fingerprint(const char* pkg);
+ 
+ /**
++ * A function, which checks if the given finger print is imported.
++ * @param pkg A package name.
++ * @return 1 if imported, otherwise (not-imported, or error) 0
++ */
++int rpm_fingerprint_is_imported(const char* fingerprint);
++
++/**
++ * A function, which returns package's finger print
++ * @param pkg A package name.
++ * @return NULL if not-valid, otherwise malloced NULL-terminated string.
++ */
++char *rpm_get_fingerprint(const char* pkg);
++
++/**
+  * Gets a package name. This package contains particular
+  * file. If the file doesn't belong to any package, empty string is
+  * returned.
+diff --git a/src/plugins/abrt-action-save-kernel-data b/src/plugins/abrt-action-save-kernel-data
+index f8b18f0..de9670a 100755
+--- a/src/plugins/abrt-action-save-kernel-data
++++ b/src/plugins/abrt-action-save-kernel-data
+@@ -76,3 +76,9 @@ rpm --root $ROOT -q --qf "%{release}\n" "$package" > pkg_release
+ epoch="$( rpm --root $ROOT -q --qf "%{epoch}" "$package" )"
+ test "$epoch" = "(none)"  && epoch=0
+ echo "$epoch" > pkg_epoch
++rpm -q --qf "%{vendor}\n" "$package" > pkg_vendor
++
++FINGERPRINT=$(rpm -q --qf "%|SIGGPG?{%{SIGGPG:pgpsig}}:{%{SIGPGP:pgpsig}}|" "$package" 2>/dev/null | tail -1)
++if [ -n "$FINGERPRINT" -a "_(none)" != "_$FINGERPRINT" ]; then
++    echo $FINGERPRINT | sed 's/.*Key ID \(....\)\(....\)\(....\)\(....\)$/\U\1 \U\2 \U\3 \U\4/' > pkg_fingerprint
++fi
+-- 
+2.5.5
+

diff --git a/abrt.spec b/abrt.spec
index df70a39..b4d9745 100644
--- a/abrt.spec
+++ b/abrt.spec
@@ -43,19 +43,17 @@
     %define docdirversion -%{version}
 %endif
 
-%define libreport_ver 2.6.4
+%define libreport_ver 2.7.0
 %define satyr_ver 0.19
 
 Summary: Automatic bug detection and reporting tool
 Name: abrt
 Version: 2.8.0
-Release: 4%{?dist}
+Release: 5%{?dist}
 License: GPLv2+
 Group: Applications/System
 URL: https://abrt.readthedocs.org/
 Source: https://fedorahosted.org/released/%{name}/%{name}-%{version}.tar.gz
-# don't remove this patch, packages in rawhide are not signed!
-Patch0: disable-OpenGPGCheck-in-Fedora-Rawhide.patch
 
 # git format-patch %%{Version} --topo-order -N -M;
 # i=1; for p in `ls 0*.patch`; do printf "Patch%04d: %s\n" $i $p; ((i++)); done
@@ -68,6 +66,27 @@ Patch0006: 0006-a-a-save-package-data-blacklist-usr-lib-64-firefox-p.patch
 #Patch0007: 0007-testsuite-add-concurrent-processing-test-for-abrtd.patch
 Patch0008: 0008-CCpp-turn-off-compat-cores.patch
 Patch0009: 0009-python3-addon-workaround-a-bug-in-traceback.patch
+#Patch0010: 0010-testsuite-fix-ccpp-plugin-debug-test.patch
+#Patch0011: 0011-testsuite-rlAssertRpm-doesn-t-work-with-abrt-addon.patch
+Patch0012: 0012-a-a-install-debuginfo-make-tmpdir-variable-global.patch
+Patch0013: 0013-a-a-install-debuginfo-fix-BrokenPipe-error.patch
+Patch0014: 0014-Add-basic-documentation.patch
+#Patch0015: 0015-spec-README-README.md.patch
+#Patch0016: 0016-testsuite-compat-cores-add-include-to-the-loop.c-fil.patch
+#Patch0017: 0017-testsuite-changes-due-to-turn-off-compat-cores.patch
+#Patch0018: 0018-testsuite-yum-to-dnf.patch
+#Patch0019: 0019-testsuite-avoid-unintentional-removal-of-package-man.patch
+#Patch0020: 0020-testsuite-tell-the-runner-about-problem-sub-director.patch
+Patch0021: 0021-Save-Vendor-and-GPG-Fingerprint.patch
+#Patch0022: 0022-testsuite-add-tests-for-pgk_vendor-and-pkg_fingerpri.patch
+#Patch0023: 0023-testsuite-add-rhtsupport-discourage-tests.patch
+#Patch0024: 0024-testsuite-add-a-per-test-timeout-for-15m.patch
+#Patch0025: 0025-testsuite-reporter-rhtsupport-should-attach-whole-du.patch
+#Patch0026: 0026-testsuite-rhts-problem-report-api-correct-phase-test.patch
+#Patch0027: 0027-testsuite-test-for-reporter-mailx-email-formatting.patch
+
+# don't remove this patch, packages in rawhide are not signed!
+Patch0: disable-OpenGPGCheck-in-Fedora-Rawhide.patch
 
 # '%%autosetup -S git' -> git
 BuildRequires: git
@@ -737,7 +756,7 @@ killall abrt-dbus >/dev/null 2>&1 || :
 
 %files -f %{name}.lang
 %defattr(-,root,root,-)
-%doc README COPYING
+%doc README.md COPYING
 %if %{with systemd}
 %{_unitdir}/abrtd.service
 %{_tmpfilesdir}/abrt.conf
@@ -1095,6 +1114,12 @@ killall abrt-dbus >/dev/null 2>&1 || :
 %config(noreplace) %{_sysconfdir}/profile.d/abrt-console-notification.sh
 
 %changelog
+* Fri Apr 08 2016 Matej Habrnal <mhabrnal@redhat.com> 2.8.0-5
+- spec: README -> README.md
+- Add basic documentation
+- a-a-install-debuginfo: fix BrokenPipe error
+- a-a-install-debuginfo: make tmpdir variable global
+
 * Mon Mar 7 2016 Matej Habrnal <mhabrnal@redhat.com> 2.8.0-4
 - python3 addon: workaround a bug in traceback
 

diff --git a/disable-OpenGPGCheck-in-Fedora-Rawhide.patch b/disable-OpenGPGCheck-in-Fedora-Rawhide.patch
index 11d8c3e..f88c86d 100644
--- a/disable-OpenGPGCheck-in-Fedora-Rawhide.patch
+++ b/disable-OpenGPGCheck-in-Fedora-Rawhide.patch
@@ -13,8 +13,8 @@ index 3d35bb6..e3f724a 100644
 --- a/src/daemon/abrt-action-save-package-data.conf
 +++ b/src/daemon/abrt-action-save-package-data.conf
 @@ -3,7 +3,7 @@
- # the list of public keys used to check the signature is
- # in the file gpg_keys
+ # Product Signing (GPG) Keys:
+ # https://access.redhat.com/security/team/key
  #
 -OpenGPGCheck = yes
 +OpenGPGCheck = no

                 reply	other threads:[~2026-08-03 10:23 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178575260024.1.16854656821276466512.rpms-abrt-cd3efeaff4bd@fedoraproject.org \
    --to=mhabrnal@redhat.com \
    --cc=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox