Bug 591365

Summary: Review Request: libexplain - Library functions to explain system call errors
Product: [Fedora] Fedora Reporter: Eric Smith <spacewar>
Component: Package ReviewAssignee: Martin Gieseking <martin.gieseking>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, martin.gieseking, notting
Target Milestone: ---Flags: martin.gieseking: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: libexplain-0.52.D002-1.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-01-17 20:54:34 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Eric Smith 2010-05-12 02:53:09 UTC
Spec URL: http://fedorapeople.org/~brouhaha/libexplain/libexplain.spec
SRPM URL: http://fedorapeople.org/~brouhaha/libexplain/libexplain-0.31.D001-1.fc12.src.rpm
Description:
The libexplain project provides a library which may be used to explain
Unix and Linux system call errors. This will make your application's
error messages much more informative to your users.  The library is
not quite a drop-in replacement for strerror, but it comes close. Each
system call has a dedicated libexplain function.

The coverage for system calls is being improved all the time. Coverage
includes 159 system calls and 444 ioctl requests.

Comment 1 Martin Gieseking 2010-06-04 07:56:21 UTC
Hi Eric,

some quick comments:

- unlike your comment in the spec file, the regular SF download URL works, so you should change Source0 to
https://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz

- The intended license seems to be LGPLv3+. However the sources in libexplain/iocontrol refer to GPL3+. That would result in GPL3+. You should ask upstream if this is intentional or a mistake. In the latter case the comment headers should be fixed.

- the package fails to build in mock and koji:
http://koji.fedoraproject.org/koji/taskinfo?taskID=2229164

This is because there are some includes missing, e.g. 
  in libexplain/buffer/ifreq_data/hwtstamp_config.c:
  #include <libexplain/parse_bits.h>

  in libexplain/iocontrol/siocshwtstamp.c:
  #include <libexplain/path_is_efault.h>

I didn't try to find all. There are some more includes missing.

Comment 2 Martin Gieseking 2010-06-04 08:02:35 UTC
(In reply to comment #1)
> https://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
Sorry, no need for https. http should do it too.

Comment 3 Eric Smith 2010-08-10 22:17:12 UTC
I still find that I cannot download using the standard SF URL.  If you are able to get that to work, please give me the EXACT URL you use.  In particular, for the latest version, which is 0.34.D001.

I'll check with the author about the LGPLv3+ vs. GPLv3+ issue.

It built fine for me with mock on F12 x86_64 before I uploaded it.  I've since upgraded to 0.34.D001, which builds fine on F12 i386 and x86_64 with mock, and for f12-dist with koji.  It looks like something much have changed in the headers for F13 since that problem didn't occur with F12.  I'll see if I can find more of the missing includes, and report the problem upstream.

Thanks!
Eric

Comment 4 Martin Gieseking 2010-08-11 08:29:42 UTC
(In reply to comment #3)
> I still find that I cannot download using the standard SF URL.  If you are able
> to get that to work, please give me the EXACT URL you use.  In particular, for
> the latest version, which is 0.34.D001.

I was able to download the previous releases using the standard SF URL. However, the tarball of the latest release 0.34.D001 was directly uploaded to the SF project webspace. Thus, it's not reachable through the files section [1]. Maybe you should ask upstream to upload the tarball with the SF file manager. This would also update the "Download Now!" button on the project page [2]. 

The previous release 0.32.D001 can still be downloaded with
http://downloads.sourceforge.net/libexplain/libexplain-0.32.D001.tar.gz


> It looks like something much have changed in the
> headers for F13 since that problem didn't occur with F12.  I'll see if I can
> find more of the missing includes, and report the problem upstream.

OK, thanks for the info. I hope the changes are not too drastic, and the issues can be sorted easily.  


[1] http://sourceforge.net/projects/libexplain/files/
[2] http://sourceforge.net/projects/libexplain/

Comment 5 Eric Smith 2010-09-08 00:50:16 UTC
Peter Miller (upstream author) has addressed the Fedora 13 build issue, and has also changed his build system to upload to the SourceForge file manager.

Spec URL: http://fedorapeople.org/~brouhaha/libexplain/libexplain.spec
SRPM URL: http://fedorapeople.org/~brouhaha/libexplain/libexplain-0.38.D001-1.fc13.src.rpm
Koji scratch build for Fedora 13: http://koji.fedoraproject.org/koji/taskinfo?taskID=2453528

Comment 6 Martin Gieseking 2010-09-08 16:05:19 UTC
Here are some (minor) comments:

- Package "explain" doesn't need to require the base package. libexplain is 
  picked up automatically as a dependency.

- The %{optflags} are not required in "make install"

- The manpages are licensed under GPLv3+. Thus, the -devel package should get
  the License tag: LGPLv3+ and GPLv3+

- There's an issue in explain_output.3 reported by rpmlint:
  libexplain-devel.i686: W: manual-page-warning /usr/share/man/man3/explain_output.3.gz 25: warning: `XX' not defined

You can fix it with the following patch:

--- a/man/man3/explain_output.3
+++ b/man/man3/explain_output.3
@@ -19,10 +19,10 @@
 .ds n) explain_output
 .TH explain_output 3
 .SH NAME
+explain_output \- output error messages
 .if require_index \{
-explain_output \- output error messages
+.XX "explain_output(3)" "output error messages"
 .\}
-.XX "explain_output(3)" "output error messages"
 .SH SYNOPSIS
 .ft CW
 #include <libexplain/output.h>

Comment 7 Jason Tibbitts 2010-11-19 17:13:35 UTC
Any response to comment 6?

Comment 8 Eric Smith 2011-01-03 06:42:10 UTC
The 'XX" macro problem has been fixed upstream.  I've addressed Martin's other comments in the updated spec.

Spec URL: http://fedorapeople.org/~brouhaha/libexplain/libexplain.spec
SRPM URL:
http://fedorapeople.org/~brouhaha/libexplain/libexplain-0.40.D001-1.fc14.src.rpm
Koji scratch build for Fedora 14:
http://koji.fedoraproject.org/koji/taskinfo?taskID=2697280

Comment 9 Martin Gieseking 2011-01-04 19:03:26 UTC
The package looks fine now. 

Since some files are licensed under GPLv3+, I recommend to ask upstream to add the GPLv3 license text to a future release. Currently, only the LGPLv3 license text is present in the tarball.

$ rpmlint /var/lib/mock/fedora-14-x86_64/result/*.rpm
explain.x86_64: W: spelling-error %description -l en_US strace -> trace, traces, strafe
libexplain.src: W: spelling-error %description -l en_US strerror -> str error, str-error, stressor
libexplain.x86_64: W: spelling-error %description -l en_US strerror -> str error, str-error, stressor
5 packages and 0 specfiles checked; 0 errors, 3 warnings.

The above spelling errors are false positive and can be ignored.


---------------------------------
key:

[+] OK
[.] OK, not applicable
[X] needs work
---------------------------------

[+] MUST: The package must be named according to the Package Naming Guidelines.
[+] MUST: The spec file name must match the base package %{name}.
[+] MUST: The package must meet the Packaging Guidelines.
[+] MUST: The package must be licensed with a Fedora approved license.
[+] MUST: The License field in the package spec file must match the actual license.
[+] MUST: The file containing the text of the license(s) for the package must be included in %doc.
[+] MUST: The spec file must be written in American English.
[+] MUST: The spec file for the package MUST be legible.
[+] MUST: The sources used to build the package must match the upstream source.
    $ md5sum libexplain-0.40.D001.tar.gz*
    7530e6f5886ffee062f89ff283884ea0  libexplain-0.40.D001.tar.gz
    7530e6f5886ffee062f89ff283884ea0  libexplain-0.40.D001.tar.gz.1

[+] MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture.
    koji scratch build (f15):
    http://koji.fedoraproject.org/koji/taskinfo?taskID=2701054

[.] MUST: If the package does not successfully compile, build or work on an architecture, ...
[+] MUST: All build dependencies must be listed in BuildRequires.
[.] MUST: The spec file MUST handle locales properly. This is done by using the %find_lang macro. Using %{_datadir}/locale/* is strictly forbidden.
[+] MUST: Packages storing shared library files (not just symlinks) must call ldconfig in %post and %postun.
[+] MUST: Packages must NOT bundle copies of system libraries.
[.] MUST: If the package is designed to be relocatable, ...
[+] MUST: A package must own all directories that it creates. 
[+] MUST: A Fedora package must not list a file more than once in %files.
[+] MUST: Permissions on files must be set properly.
[+] MUST: Each package must consistently use macros.
[+] MUST: The package must contain code, or permissable content.
[.] MUST: Large documentation files must go in a -doc subpackage.
[+] MUST: Files in %doc must not affect the runtime of the application.
[+] MUST: Header files must be in a -devel package.
[.] MUST: Static libraries must be in a -static package.
[+] MUST: .so (without suffix) must go in a -devel package.
[+] MUST: devel packages must require the base package using a fully versioned dependency
[+] MUST: Packages must NOT contain any .la libtool archives
[.] MUST: Packages containing GUI applications must include a %{name}.desktop file
[+] MUST: Packages must not own files or directories already owned by other packages.
[+] MUST: All filenames in rpm packages must be valid UTF-8.

[X] SHOULD: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it.
    - The GPLv3 license text is missing in the tarball. I recommend to ask upstream to add it.

[+] SHOULD: The reviewer should test that the package builds in mock.
[+] SHOULD: The package should compile and build into binary rpms on all supported architectures.
[+] SHOULD: The reviewer should test that the package functions as described. 
[+] SHOULD: If scriptlets are used, those scriptlets must be sane.
[+] SHOULD: pkgconfig(.pc) files should be placed in a -devel pkg.
[.] SHOULD: If the package has file dependencies outside of /etc, /bin, /sbin, /usr/bin, or /usr/sbin ...
[+] SHOULD: your package should contain man pages for binaries/scripts.

----------------
Package APPROVED
----------------

Comment 10 Eric Smith 2011-01-05 05:56:25 UTC
New Package SCM Request
=======================
Package Name: libexplain
Short Description: Library functions to explain system call errors
Owners: brouhaha
Branches: f14

Comment 11 Jason Tibbitts 2011-01-05 16:03:44 UTC
Git done (by process-git-requests).

Comment 12 Fedora Update System 2011-01-09 03:07:12 UTC
libexplain-0.40.D001-1.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/libexplain-0.40.D001-1.fc14

Comment 13 Fedora Update System 2011-01-09 21:00:31 UTC
libexplain-0.40.D001-1.fc14 has been pushed to the Fedora 14 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update libexplain'.  You can provide feedback for this update here: https://admin.fedoraproject.org/updates/libexplain-0.40.D001-1.fc14

Comment 14 Fedora Update System 2011-01-17 20:54:28 UTC
libexplain-0.40.D001-1.fc14 has been pushed to the Fedora 14 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 15 Eric Smith 2012-03-11 07:26:09 UTC
Package Change Request
======================
Package Name: libexplain
New Branches: el6
Owners: brouhaha

Comment 16 Gwyn Ciesla 2012-03-12 12:03:49 UTC
Git done (by process-git-requests).

Comment 17 Fedora Update System 2012-03-12 18:39:29 UTC
libexplain-0.52.D002-1.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/libexplain-0.52.D002-1.el6

Comment 18 Fedora Update System 2012-03-28 20:38:25 UTC
libexplain-0.52.D002-1.el6 has been pushed to the Fedora EPEL 6 stable repository.