Bug 614196

Summary: Review Request: gccxml - XML output extension to GCC
Product: [Fedora] Fedora Reporter: Mattias Ellert <mattias.ellert>
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+
kevin: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: gccxml-0.9.0-0.3.20100715.el5 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-08-02 14:56:51 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Description Mattias Ellert 2010-07-13 20:18:53 UTC
Spec URL: http://www.grid.tsl.uu.se/review/gccxml.spec
SRPM URL: http://www.grid.tsl.uu.se/review/gccxml-0.9.0-0.1.20100713.fc12.src.rpm

Description:
There is one open-source C++ parser, the C++ front-end to GCC, which
is currently able to deal with the language in its entirety. The
purpose of the GCC-XML extension is to generate an XML description of
a C++ program from GCC's internal representation. Since XML is easy to
parse, other development tools will be able to work with C++ programs
without the burden of a complicated C++ parser.


rpmlint complains about "devel-file-in-non-devel-package", but the header files in this package are not header files for a library, they are used at runtime by the executable and therefore can not be put in a devel package.

Comment 1 Martin Gieseking 2010-07-14 17:45:15 UTC
Hi Mattias,

here are some quick comments:

- rpmlint emits two errors concerning wrong file permissions. The latter should be set to 755:

$ rpmlint /var/lib/mock/fedora-13-x86_64/result/*.rpm|fgrep E:
gccxml.x86_64: E: non-executable-script /usr/share/gccxml-0.9/IBM/find_flags_common 0644L /bin/sh
gccxml.x86_64: E: non-executable-script /usr/share/gccxml-0.9/Sun/find_flags_common 0644L /bin/sh

- I'm not sure about the overall license because several licenses are involved:
  + gccxml seems to be licensed under BSD
  + the bundled gcc libraries are licensed under LGPLv2+
  + the included GCC sources are licensed under GPLv2+
  ==> this would lead to GPLv2+ for the package
  + some of the packaged header files are licensed under GPLv3+ with exceptions,
    e.g. GCC_XML/Support/GCC/4.5/iomanip
  ==> has this to be reflected in the License field?

- Only the BSD license text is currently packaged. If the resulting license is GPLv2+, GCC/COPYING should be added to %doc.

Comment 2 Martin Gieseking 2010-07-14 19:54:15 UTC
According to the upstream website [1], the package is multi-licensed:
BSD and GPLv2+. However, I'm still not sure if this covers the header files licensed under "GPLv3+ with exceptions".

[1] http://www.gccxml.org/HTML/Copyright.html

Comment 3 Mattias Ellert 2010-07-15 04:57:16 UTC
New version:

Spec URL: http://www.grid.tsl.uu.se/review/gccxml.spec
SRPM URL: http://www.grid.tsl.uu.se/review/gccxml-0.9.0-0.2.20100713.fc12.src.rpm

Changed License tag to:
BSD and GPLv2+ and GPLv2+ with exceptions and GPLv3+ with exceptions

Fixed the non-executable script issue

Added GPL COPYING file to documentation.

Comment 4 Martin Gieseking 2010-07-15 07:27:51 UTC
Here's the formal review. The package looks fine and works as expected.
Since some header files refer to a file containing the GCC Runtime Library Exception, I suggest to ask upstream to add this file together with a copy of the GPLv3 license text which is also missing.

$ rpmlint gccxml-*.rpm|fgrep -v devel-file
gccxml.src: W: invalid-url Source0: gccxml-0.9.0-20100713.tar.gz
gccxml.x86_64: W: no-manual-page-for-binary gccxml_cc1plus
3 packages and 0 specfiles checked; 0 errors, 59 warnings.

All remaining warnings are expected 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: 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, as provided in the spec URL.
    $ for f in gccxml-0.9.0-20100713.tar.gz*; do tar xzOf $f|md5sum --binary; done
    1a7b0a033d3fe06fd5425962fd83e646  -
    1a7b0a033d3fe06fd5425962fd83e646  -

[+] MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture.
    koji scratch builds:
    F-13: http://koji.fedoraproject.org/koji/taskinfo?taskID=2321215
    F-14: http://koji.fedoraproject.org/koji/taskinfo?taskID=2321302 

[.] MUST: If the package does not successfully compile, ...
[+] MUST: All build dependencies must be listed in BuildRequires.
[.] MUST: The spec file MUST handle locales properly. 
    - locales in GCC/libcpp/po are not installed by gccxml

[.] MUST: Ppackages which store shared libraries 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. If it does not create a directory that it uses, then it should require a package which does create that directory.
[+] MUST: Files must not be listed more than once in the spec file's %files listings.
[+] MUST: Permissions on files must be set properly.
[+] MUST: Each package must have a %clean section, which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT).
[+] 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: If a package includes something as %doc, it must not affect the runtime of the application.
[.] MUST: Header files must be in a -devel package.
    - packaged header files are part of the compiler and thus must be part of the base package

[+] MUST: Static libraries must be in a -static package.
[.] MUST: Library files without a numeric suffix must go in a -devel package.
[.] MUST: devel packages must require the base package 
[+] 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.
    - files containing the text of GPLv3 and the GCC Runtime Library Exception should be added upstream.

[+] 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. A package should not segfault instead of running, for example.
[.] SHOULD: If scriptlets are used, those scriptlets must be sane.
[.] SHOULD: Usually, subpackages other than devel should require the base package using a fully versioned dependency.
[.] SHOULD: pkgconfig 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 ...

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

Comment 5 Mattias Ellert 2010-07-15 08:01:33 UTC
Thank you for the review!

New Package CVS Request
=======================
Package Name: gccxml
Short Description: XML output extension to GCCxrootd
Owners: ellert
Branches: F-12 F-13 EL-4 EL-5 EL-6
InitialCC:

Comment 6 Mattias Ellert 2010-07-15 08:09:02 UTC
Oops - cut and past error... Here is the correct one:

New Package CVS Request
=======================
Package Name: gccxml
Short Description: XML output extension to GCC
Owners: ellert
Branches: F-12 F-13 EL-4 EL-5 EL-6
InitialCC:

Comment 7 Mattias Ellert 2010-07-15 08:47:06 UTC
(In reply to comment #4)
> [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.
>     - files containing the text of GPLv3 and the GCC Runtime Library Exception
> should be added upstream.

Reported upstream:

http://www.gccxml.org/Bug/view.php?id=10993

Comment 8 Kevin Fenzi 2010-07-16 17:40:35 UTC
CVS done (by process-cvs-requests.py).

Comment 9 Fedora Update System 2010-07-16 18:53:58 UTC
gccxml-0.9.0-0.3.20100715.fc13 has been submitted as an update for Fedora 13.
http://admin.fedoraproject.org/updates/gccxml-0.9.0-0.3.20100715.fc13

Comment 10 Fedora Update System 2010-07-16 18:54:05 UTC
gccxml-0.9.0-0.3.20100715.fc12 has been submitted as an update for Fedora 12.
http://admin.fedoraproject.org/updates/gccxml-0.9.0-0.3.20100715.fc12

Comment 11 Fedora Update System 2010-07-16 18:54:50 UTC
gccxml-0.9.0-0.3.20100715.el5 has been submitted as an update for Fedora EPEL 5.
http://admin.fedoraproject.org/updates/gccxml-0.9.0-0.3.20100715.el5

Comment 12 Fedora Update System 2010-07-16 18:54:56 UTC
gccxml-0.9.0-0.3.20100715.el4 has been submitted as an update for Fedora EPEL 4.
http://admin.fedoraproject.org/updates/gccxml-0.9.0-0.3.20100715.el4

Comment 13 Fedora Update System 2010-07-21 20:03:32 UTC
gccxml-0.9.0-0.3.20100715.el4 has been pushed to the Fedora EPEL 4 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 gccxml'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/gccxml-0.9.0-0.3.20100715.el4

Comment 14 Fedora Update System 2010-07-21 20:06:50 UTC
gccxml-0.9.0-0.3.20100715.el5 has been pushed to the Fedora EPEL 5 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 gccxml'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/gccxml-0.9.0-0.3.20100715.el5

Comment 15 Fedora Update System 2010-08-02 14:56:47 UTC
gccxml-0.9.0-0.3.20100715.el4 has been pushed to the Fedora EPEL 4 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 16 Fedora Update System 2010-08-02 14:59:20 UTC
gccxml-0.9.0-0.3.20100715.el5 has been pushed to the Fedora EPEL 5 stable repository.  If problems still persist, please make note of it in this bug report.