Bug 728407

Summary: Review Request: xqilla - XQuery and XPath 2.0 library, built on top of Xerces-C
Product: [Fedora] Fedora Reporter: Haïkel Guémar <karlthered>
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: martin.gieseking, notting, package-review
Target Milestone: ---Flags: martin.gieseking: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: xqilla-2.2.4-2.fc16 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-08-22 15:03:33 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 Haïkel Guémar 2011-08-05 02:20:33 UTC
Spec URL: http://hguemar.fedorapeople.org/packages/xqilla.spec
SRPM URL: http://hguemar.fedorapeople.org/packages/xqilla-2.2.4-1.fc16.src.rpm
Description: XQilla is an XQuery and XPath 2.0 implementation written in C++ and based on Xerces-C. It implements the DOM 3 XPath API, as well as having it's own more powerful API. It conforms to the W3C proposed recommendation of XQuery and XPath 2.0.


scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=3253414
rpmlint output:
$ rpmlint -iv xqilla-2.2.4-1.fc16.src.rpm 
xqilla.src: I: checking
xqilla.src: W: spelling-error Summary(en_US) XQuery -> X Query, Query, Equerry
The value of this tag appears to be misspelled. Please double-check.

xqilla.src: W: spelling-error %description -l en_US recomendation -> recommendation, commendation, recombination
The value of this tag appears to be misspelled. Please double-check.

xqilla.src: I: checking-url http://xqilla.sourceforge.net/HomePage (timeout 10 seconds)
xqilla.src: I: checking-url http://downloads.sourceforge.net/xqilla/XQilla-2.2.4.tar.gz (timeout 10 seconds)
1 packages and 0 specfiles checked; 0 errors, 2 warnings.

$ rpmlint -iv xqilla-2.2.4-1.fc16.noarch.rpm
xqilla.x86_64: I: checking
xqilla.x86_64: W: spelling-error Summary(en_US) XQuery -> X Query, Query, Equerry
The value of this tag appears to be misspelled. Please double-check.

xqilla.x86_64: W: spelling-error %description -l en_US recomendation -> recommendation, commendation, recombination
The value of this tag appears to be misspelled. Please double-check.

xqilla.x86_64: I: checking-url http://xqilla.sourceforge.net/HomePage (timeout 10 seconds)
xqilla.x86_64: W: shared-lib-calls-exit /usr/lib64/libxqilla.so.5.0.4 exit.5
This library package calls exit() or _exit(), probably in a non-fork()
context. Doing so from a library is strongly discouraged - when a library
function calls exit(), it prevents the calling program from handling the
error, reporting it to the user, closing files properly, and cleaning up any
state that the program has. It is preferred for the library to return an
actual error code and let the calling program decide how to handle the
situation.

1 packages and 0 specfiles checked; 0 errors, 3 warnings.

$ rpmlint -iv xqilla-devel-2.2.4-1.fc16.noarch.rpm
xqilla-devel.x86_64: I: checking
xqilla-devel.x86_64: W: spelling-error %description -l en_US recomendation -> recommendation, commendation, recombination
The value of this tag appears to be misspelled. Please double-check.

xqilla-devel.x86_64: I: checking-url http://xqilla.sourceforge.net/HomePage (timeout 10 seconds)
xqilla-devel.x86_64: W: no-documentation
The package contains no documentation (README, doc, etc). You have to include
documentation files.

1 packages and 0 specfiles checked; 0 errors, 2 warnings.

$ rpmlint -iv xqilla-doc-2.2.4-1.fc16.noarch.rpm
xqilla-doc.noarch: I: checking
xqilla-doc.noarch: W: spelling-error %description -l en_US api -> pi, ape, apt
The value of this tag appears to be misspelled. Please double-check.

xqilla-doc.noarch: I: checking-url http://xqilla.sourceforge.net/HomePage (timeout 10 seconds)
1 packages and 0 specfiles checked; 0 errors, 1 warnings.

Comment 1 Martin Gieseking 2011-08-05 06:55:34 UTC
I'll review this one later today. 
Please adapt the sources to not use the bundled xqc.h but the corresponding Fedora package. I'm still planning to package Zorba which also relies on xqc. In order to avoid multiple ownership of %{_includedir}/xqc.h, xqilla and Zorba should use the separate xqc package.

Comment 2 Haïkel Guémar 2011-08-05 10:14:39 UTC
@Martin: nice catch, i ensure that the embedded xqc.h won't be used/installed and i added xqc as BR and R to xqilla-devel.
spec and src.rpm above updated
scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=3253957

Comment 3 Martin Gieseking 2011-08-05 17:19:31 UTC
Here's the review. The package looks almost fine. There are just a couple of minor things to be addressed:

- add a short comment above Patch0 that the patch has already been applied
  to the upstream repository
  http://xqilla.hg.sourceforge.net/hgweb/xqilla/xqilla/rev/fcb3a70b99a8

- update the fully versioned dependency to 
  Requires: %{name}%{?_isa} = %{version}-%{release}
  (the guidelines have been changed a few months ago)

- add INSTALL='install -p" to "make install" in order to preserve the 
  timestamps of the header files

- replace %{_mandir}/man1/%{name}.1.gz with %{_mandir}/man1/%{name}.1*
  as the spec shouldn't rely on a specific compression format applied to
  manpages.

- since the -doc package doesn't require the base package, add file LICENSE
  to it.
  http://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Subpackage_Licensing

- please tell upstream about the shared-lib-calls-exit issue and ask whether
  they could replace the call of exit() with something less radical, e.g.
  exceptions 


$ rpmlint /var/lib/mock/fedora-15-x86_64/result/*.rpm
xqilla.src: W: spelling-error Summary(en_US) XQuery -> X Query, Query, Equerry
xqilla.x86_64: W: spelling-error Summary(en_US) XQuery -> X Query, Query, Equerry
xqilla.x86_64: W: shared-lib-calls-exit /usr/lib64/libxqilla.so.5.0.4 exit.5
xqilla-devel.x86_64: W: no-documentation
xqilla-doc.noarch: W: spelling-error %description -l en_US api -> pi, ape, apt
5 packages and 0 specfiles checked; 0 errors, 5 warnings.

---------------------------------
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 XQilla-2.2.4.tar.gz*
    a00672133d06772f54f18d0fda304c02  XQilla-2.2.4.tar.gz
    a00672133d06772f54f18d0fda304c02  XQilla-2.2.4.tar.gz.1

[+] MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture.
[.] MUST: If the package does not successfully compile, build or work on an architecture, ...
[+] MUST: All build dependencies must be listed in BuildRequires.
[+] MUST: When compiling C, C++, or Fortran files, %{optflags} must be applied.
[.] MUST: The spec file MUST handle locales properly.
[+] 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: If a package contains library files with a suffix, then .so (without suffix) must go in a -devel package.
[X] 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.

EPEL <= 5 only:
[+] MUST: The spec file must contain a valid BuildRoot field.
[+] MUST: At the beginning of %install, each package MUST run rm -rf %{buildroot}.
[+] MUST: Each package must have a %clean section, which contains rm -rf %{buildroot}.
[.] MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig'

[.] 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.
[X] SHOULD: Timestamps of files should be preserved.
[.] SHOULD: Patch files should be prefixed with %{name}-
[X] SHOULD: All patches should be commented in the spec file
[+] SHOULD: The reviewer should test that the package builds in mock.
[+] SHOULD: The reviewer should test that the package functions as described.
[+] 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(.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 consider requiring the package which provides the file instead of the file itself.
[+] SHOULD: Your package should contain man pages for binaries/scripts.

Comment 4 Haïkel Guémar 2011-08-07 12:55:37 UTC
spec and src.rpm above were updated
changes summary:
* commented up the gcc46 patch line
* use %{?_isa} for arch-dependent requires
* use -p to install (the shell variable should be set at configure time or it won't be used)
* add LICENSE file to -doc subpackage
* for the exit issue, it's flex C generated code, so using C++ exceptions instead of aborting requires either editing generated code (ugly and error-prone) or rewriting the command-line parser.

Comment 5 Martin Gieseking 2011-08-08 08:29:19 UTC
Haïkel, it seems, you've modified an older version of the spec, as the xqc stuff from the previous revision is missing. Please always bump the Release number every time you provide a new revision, and add a corresponding %changelog entry. This helps to avoid this kind of oversights. ;)

Also, the package currently doesn't build. You can fix it by removing export INSTALL="install -p" from %build. Add it to "make install" instead, like so:
make install DESTDIR=%{buildroot} INSTALL="install -p"

This overrides the definition of INSTALL in the Makefile. Everything else looks fine now.

Comment 6 Haïkel Guémar 2011-08-08 11:59:46 UTC
Sorry for the mistake (spec ans src.rpm above updated), i usually don't bump changelog for unreleased packages as it clutters the changelog.
scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=3258093

Comment 7 Martin Gieseking 2011-08-08 14:01:02 UTC
OK, the package is ready for check-in now.

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

Comment 8 Haïkel Guémar 2011-08-08 14:15:29 UTC
Package Change Request
======================
Package Name: xqilla
New Branches: f15 f16 devel
Owners: hguemar
InitialCC:

Comment 9 Gwyn Ciesla 2011-08-08 15:07:04 UTC
Git done (by process-git-requests).

f16 created, devel, f15, f14 unretired, please take ownership in pkgdb.

Comment 10 Fedora Update System 2011-08-09 07:10:02 UTC
xqilla-2.2.4-2.fc16 has been submitted as an update for Fedora 16.
https://admin.fedoraproject.org/updates/xqilla-2.2.4-2.fc16

Comment 11 Fedora Update System 2011-08-09 21:54:10 UTC
Package xqilla-2.2.4-2.fc16:
* should fix your issue,
* was pushed to the Fedora 16 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing xqilla-2.2.4-2.fc16'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/xqilla-2.2.4-2.fc16
then log in and leave karma (feedback).

Comment 12 Fedora Update System 2011-08-22 15:03:27 UTC
xqilla-2.2.4-2.fc16 has been pushed to the Fedora 16 stable repository.  If problems still persist, please make note of it in this bug report.