Bug 376541

Summary: Review Request: xqilla10 - XQilla is an XQuery and XPath 2.0 library, built on top of Xerces-C
Product: [Fedora] Fedora Reporter: Milan Zázrivec <mzazrivec>
Component: Package ReviewAssignee: Mamoru TASAKA <mtasaka>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, mtasaka, notting, tcallawa
Target Milestone: ---Flags: mtasaka: fedora-review+
tcallawa: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-12-21 07:01:43 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:
Bug Depends On:    
Bug Blocks: 250093    

Description Milan Zázrivec 2007-11-11 21:23:01 UTC
Spec URL: http://www.fi.muni.cz/~xzazriv/xqilla101/xqilla101.spec
SRPM URL: http://www.fi.muni.cz/~xzazriv/xqilla101/xqilla101-1.0.1-3.fc8.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 recomendation of XQuery
and XPath 2.0.

Comment 1 Milan Zázrivec 2007-11-11 21:39:43 UTC
My few comments on xqilla101:

* xqilla101 is packaged XQilla version 1.0.1. It's not the latest upstream
version, this package review resulted from review discussions going on in
https://bugzilla.redhat.com/show_bug.cgi?id=250093

* xqilla101 source rpm also includes sources of xerces-c -- XQilla build process
relies on few xerces-c include files that are not present in standard xerces-c-devel
package.

* Patch0 and Patch1 are work of Oracle (created for dbxml ver. 2.3.10)

* Patch3 makes xqilla101 build process to link xqilla binary / library against
system xerces-c library.

* Koji builds:
http://koji.fedoraproject.org/koji/taskinfo?taskID=234689
http://koji.fedoraproject.org/koji/taskinfo?taskID=234688
http://koji.fedoraproject.org/koji/taskinfo?taskID=234682
http://koji.fedoraproject.org/koji/taskinfo?taskID=234686

Comment 2 Mamoru TASAKA 2007-11-12 11:24:49 UTC
For 1.0.1-3:

* SourceURL
  - Please specify full URLs for Source0/1.

* Redundant (Build)Requires
  - I guess "xerces-c-devel >= 2.7.0" BuildRequires should
    pull "xerces-c >= 2.7.0".

* Duplicate entry
  - The entry "License" or "URL" is needed only once for description
    unless they differ between subpackages.

* EVR specific dependency between subpackages
  - Usually dependency between subpackages must be EVR
    (Epoch-Version-Release) (i.e. not only EV) specific.
    i.e. Usually -devel package should have
    "Requires: %{name} = %{version}-%{release}".

* Dependency for xerces-c
  - Is xqilla101 has to be rebuilt (or will you want to rebuild)
    against new xerces-c if
    xerces-c is upgraded to 2.7.1, for example? (i.e. ABI not changed
    but updated with some reason)?
    If so, it may be better that xquilla101 has version specific dependency
    against xerces-c.

  - Also xqilla101-devel Requires (not BuildRequires) xerces-c-devel.

* Timestamps
  - When you use "cp" or "install" commands, please add "-p" option
    to keep timestamps.

  - Also, for this package the following method will keep timestamps
    on installed header files (this method usually works for packages
    using "install-sh" for "make install").
---------------------------------------------------------------------
%install
rm -rf %{buildroot}
export CPPROG="cp -p"
make install DESTDIR=%{buildroot}
---------------------------------------------------------------------

* One line /sbin/ldconfig scriptlet call
  - To remove unneeded sh call, please replace this by
---------------------------------------------------------------------
%post -p /sbin/ldconfig
---------------------------------------------------------------------
    for example.

* devel-file-in-non-devel-package /usr/lib/libxqilla.so rpmlint
  - %_libdir/libxqilla.so must be moved to -devel package

* Namespace conflict
  - Well, the reason this rpm is named xqilla101, not the direct xqilla101
    is to make it sure that someone can package the latest xqilla and
    can import to Fedora.
    For that case, the libraries' name and the header directory must be
    renamed.
    - %_libdir/libxqilla.so should be renamed to %_libdir/libxqilla101.so,
      for example (also soname should be changed). 
-----------------------------------------------------------------------
  1368  g++ -shared -nostdlib ....  -Wl,-soname -Wl,libxqilla.so.1 -o
.libs/libxqilla.so.1.0.0
-----------------------------------------------------------------------
    - %_includir/xqilla should be moved to %_includedir/xqilla101
    - %_bindir/xqilla should also be renamed.

* defattr
  - Now we recommend: %defattr(-,root,root,-)


Comment 4 Mamoru TASAKA 2007-11-13 06:55:29 UTC
Well, I have not yet checked 1.0.1-4, however for license issues:

A.
./include/xqilla/mapm/m_apm.h
./src/mapm/README
and some other files under ./src/mapm

Well, I am not sure the license of these files is regarded as
free, or GPL compatible.
-------------------------------------------------------------
* Permission to modify the software is granted, but not the right to     *
* distribute the modified code.  Modifications are to be distributed     *
* as patches to released version.                                        *
-------------------------------------------------------------

B.
./src/parser/XQParser.cpp
./src/parser/XQParser.hpp
seems GPLv2+. If so, all xqilla101 files should be GPL compatible.

C.
./LICENSE.xquery.txt
This is actually the same as db4. db4 rpm says db4 license is BSD-"style"
however I am not sure how I can treat this "style"....


Comment 5 Tom "spot" Callaway 2007-11-13 14:55:53 UTC
License A is probably Free, but definitely GPL incompatible.
This conflicts with License B.
License C is db4, which is BSD with an additional clause, requiring that source
be made available. It is GPL compatible.

A and B directly conflict, you need to point this out to upstream and try to get
them to resolve it. We would prefer that they drop the A license altogether, as
it is a very poor license choice, and replace it with something GPL compatible
(or GPL itself).

Comment 6 Milan Zázrivec 2007-11-22 00:38:52 UTC
The files with problematic license were not created by XQilla project, they come
from mapm library (My Arbitrary Precision Math) created by Michael C. Ring.

XQilla upstream adopted and used it, but the upstream does not own copyright
for mapm and is not able to change it's license.

If the license of that mapm part makes it impossible for XQilla to be included
into Fedora, this bz can be safely closed.

Comment 7 Mamoru TASAKA 2007-11-22 10:33:37 UTC
Well, as the code B is GPL, the whole codes used for XQilla must be
GPL compatible.
If it is impossible to remove either A part or B part, XQilla cannot be
imported to Fedora.

Comment 8 Milan Zázrivec 2007-11-22 17:35:15 UTC
All right, I think get the problem now :-)

Files src/parser/XQParser.cpp and src/parser/XQParser.hpp were generated
automatically by bison from src/parser/XQParser.y

bison implicitly puts the standard statement about GPLv2+ licensing into
every file it generates. Apart from the GPLv2+ statement, bison v2.1 also
puts following statement into the generated files:

/* As a special exception, when this file is copied by Bison into a
   Bison output file, you may use that output file without restriction.
   This special exception was added by the Free Software Foundation
   in version 1.24 of Bison.  */

So if I got it all correct, the statement about GPLv2+ can be safely ignored.

Comment 9 Tom "spot" Callaway 2007-11-23 01:00:03 UTC
Well, the problem is with the mapm code. It says:

"Permission to modify the software is granted, but not the right to
 distribute the modified code.  Modifications are to be distributed
 as patches to released version."

But, it is rather obvious that the XQuilla upstream modified that code (#include
<xqilla/framework/XQillaExport.hpp>) and is distributing the modified software,
not as a patch to the released version.

You really ought to contact the mapm author (ringx004.edu), explain the
problem to him, and see if he is willing to relicense his code (and drop that
icky distribution restriction).

Comment 10 Milan Zázrivec 2007-12-03 17:36:17 UTC
The author of mapm agreed with relicensing and should be changing the license
text in the upstream package shortly.

I'm including the text of new license:

"Copyright (C) 1999 - 2007   Michael C. Ring

 Permission to use, copy, and distribute this software and its
 documentation for any purpose with or without fee is hereby granted, 
 provided that the above copyright notice appear in all copies and 
 that both that copyright notice and this permission notice appear 
 in supporting documentation.

 Permission to modify the software is granted. Permission to distribute
 the modified code is granted. Modifications are to be distributed 
 by using the file 'license.txt' as a template to modify the file header.
 'license.txt' is available in the official MAPM distribution.

 This software is provided "as is" without express or implied warranty."

The text of "license.txt" says:

"THIS FILE HAS BEEN MODIFIED FROM THE OFFICIAL MAPM DISTRIBUTION
 BY 'name/organization' on YYYY/MM/DD.  THIS FILE IS ORIGINALLY
 FROM MAPM VERSION X.Y.Z."

Would the new license language be acceptable for Fedora?

Comment 11 Tom "spot" Callaway 2007-12-03 18:32:44 UTC
Yes, its essentially MIT, so it is fine for Fedora. Thanks for doing the work to
get this licensing resolved. Lifting FE-Legal.

Comment 12 Mamoru TASAKA 2007-12-04 13:12:36 UTC
(In reply to comment #10)
> The author of mapm agreed with relicensing and should be changing the license
> text in the upstream package shortly.

Great to hear!
So if you are ready, please upload your new srpm then I will check
it again.

Comment 13 Milan Zázrivec 2007-12-13 13:45:43 UTC
XQilla upstream just released XQilla 1.0.2, which adopts new MAPM library
license plus couple of minor patches.

I renamed the package name (plus everything related) to xqilla102:

* http://www.fi.muni.cz/~xzazriv/xqilla102/xqilla102.spec
* http://www.fi.muni.cz/~xzazriv/xqilla102/xqilla102-1.0.2-2.fc8.src.rpm

Koji builds:
* http://koji.fedoraproject.org/koji/taskinfo?taskID=291492
* http://koji.fedoraproject.org/koji/taskinfo?taskID=291491
* http://koji.fedoraproject.org/koji/taskinfo?taskID=291506
* http://koji.fedoraproject.org/koji/taskinfo?taskID=291501

Comment 14 Mamoru TASAKA 2007-12-13 14:13:03 UTC
I will check it later, however maybe it is better that this package
is named to xqilla10?

Comment 15 Mamoru TASAKA 2007-12-14 12:53:20 UTC
For 1.0.2-2:

* Name
  - As said above, it maybe better that this rpm is named
    as xqilla10, as Fedora requests that each time you change
    the name, the corresponsing review request must be
    submitted.

* xerces-c dependency
  - Is this what you really intend?
-------------------------------------------------------------
Requires: libstdc++ >= 4.1.1 xerces-c = 2.7.0 (require 2.7.0 exactly)
BuildRequires: xerces-c-devel >= 2.7.0 (require no less than 2.7.0)
-------------------------------------------------------------

* Source
  - I recommend to use
    http://downloads.sourceforge.net/xqilla/XQilla-%{version}.tar.gz
    because with this you won't probably have to change the SourceURL
    when version is upgraded.

* scriptlets description
-------------------------------------------------------------
%clean
rm -rf %{buildroot}

%post -p /sbin/ldconfig

%postun           [A]
/sbin/ldconfig    [A]

# xqilla          [B]
%files
-------------------------------------------------------------
  [A] When only calling /sbin/ldconfig is needed on %postun, please
      write in one line like
--------------------------------------------------------------
%postun -p /sbin/ldconfig
--------------------------------------------------------------
  [B] Don't write this comment here. This comment is in %postun
      scriptlet.

! %_defaultdocdir
  - Not a issue, however I just note that all files under
    %_defaultdocdir are automatically marked as %doc.


Comment 17 Mamoru TASAKA 2007-12-17 17:26:04 UTC
Okay.

-------------------------------------------------------
    This package (xqilla10) is APPROVED by me
-------------------------------------------------------

Comment 18 Mamoru TASAKA 2007-12-18 10:43:35 UTC
Please follow
http://fedoraproject.org/wiki/PackageMaintainers/Join
to import this package into Fedora.

By the way, do you have to get sponsored?
(Please refer to the Join page above and
 http://fedoraproject.org/wiki/PackageMaintainers/HowToGetSponsored )

Comment 19 Milan Zázrivec 2007-12-18 15:30:27 UTC
New Package CVS Request
=======================
Package Name: xqilla10
Short Description: XQilla is an XQuery and XPath 2.0 library, built on top of
Xerces-C
Owners: mzazrive
Branches: F-7 F-8
InitialCC: mzazrive
Cvsextras Commits: yes

Comment 20 Tom "spot" Callaway 2007-12-18 18:08:59 UTC
cvs done. You don't need to list yourself in initialCC if you're also the
package owner. :)

Comment 21 Mamoru TASAKA 2007-12-19 12:49:04 UTC
Please close this bug when rebuild and request on bodhi system
is done.

Comment 22 Mamoru TASAKA 2007-12-21 07:01:43 UTC
Closing for now.