Bug 502686 - Review Request: wsdlpull - C++ Web Services client library
Summary: Review Request: wsdlpull - C++ Web Services client library
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Patrick Monnerat
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-05-26 23:00 UTC by Denis Arnaud
Modified: 2010-08-06 19:56 UTC (History)
3 users (show)

Fixed In Version: wsdlpull-1.23-3.el5
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-08-06 19:56:26 UTC
Type: ---
Embargoed:
patrick: fedora-review+
kevin: fedora-cvs+


Attachments (Terms of Use)

Description Denis Arnaud 2009-05-26 23:00:00 UTC
Spec URL: http://denisarnaud.fedorapeople.org/wsdlpull/123/wsdlpull.spec
SRPM URL: http://denisarnaud.fedorapeople.org/wsdlpull/123/wsdlpull-1.23-1.fc10.src.rpm
Description: wsdlpull is a C++ web services client library. It includes a WSDL
Parser, a XSD Schema Parser and Validator and XML Parser and serializer
and an API and command line tool for dynamic WSDL inspection and
invocation.

wsdlpull comes with a generic web service client. Using wsdlpull's /wsdl/
tool you can invoke most web services from command line without writing
any code.

Comment 1 Denis Arnaud 2009-05-30 23:50:12 UTC
Spec URL: http://denisarnaud.fedorapeople.org/wsdlpull/123/wsdlpull.spec
SRPM URL: http://denisarnaud.fedorapeople.org/wsdlpull/123/wsdlpull-1.23-1.fc11.src.rpm

$ rpmlint -i SPECS/wsdlpull.spec SRPMS/wsdlpull-1.23-1.fc11.src.rpm RPMS/noarch/wsdlpull-doc-1.23-1.fc11.noarch.rpm RPMS/x86_64/wsdlpull-*fc11.x86_64.rpm RPMS/x86_64/wsdlpull-*fc11.i586.rpm
8 packages and 1 specfiles checked; 0 errors, 0 warnings.

Comment 2 Denis Arnaud 2009-05-31 16:20:37 UTC
When building on (a kqemu virtual machine set-up with an installation from scratch of) CentOS 5.3, the RPM packages are well built.

However, rpmlint still complains on CentOS 5.3 (that "libraries are delivered in a "noarch" package), due the "BuildArch: noarch" directive of the "doc" sub-package, though that directive is enclosed within proper "%if 0%{fedora} >= 10 [...] %endif" clause, as per the following:
-------------------------
%package doc
Summary: HTML documentation for the %{name} library
Group: Documentation
%if 0%{?fedora} >= 10
BuildArch: noarch
BuildRequires: texlive-latex
%endif
-------------------------

I have checked that 'rpm --eval "%{fedora}"' gives "%{fedora}" under CentOS 5.3 (i.e, the %{fedora} macro is not defined on that distribution), whereas it gives "11" under Fedora Rawhide and "10" under Fedora 10 (as expected). However, I'm not sure that the following assertion "0%{fedora} >= 10" holds false under CentOS 5.3.

Also, still on CentOS 5.3, the three %{rhel}, %{rhl} and %{el5} macros are undefined, though they should be defined, according to https://fedoraproject.org/wiki/Packaging:DistTag . Or, did I miss something?

Comment 3 Michael Schwendt 2009-05-31 16:56:27 UTC
* The macros are Fedora EPEL specific. You need add-on packages:
http://buildsys.fedoraproject.org/buildgroups/

* Have you verified that CentOS builds all packages as noarch? Or is it just rpmlint that returns a false positive? AFAIK, it only runs some regexp over the spec file.

> 'rpm --eval "%{fedora}"' gives "%{fedora}" 

In the spec it's %{?fedora} however (cf. "rpm --eval %{?fedora}"), which expands to %nil if the macro is undefined. Hence 0%{?fedora} >= 10 is false on CentOS.

Comment 4 Denis Arnaud 2009-05-31 20:10:05 UTC
(In reply to comment #3)

I had added the EPEL RPM repository, and those macros were defined. But, as you suggested, I made a typo when trying to evaluate them with 'rpm --eval' :)

However, I had it right in the specification file (http://denisarnaud.fedorapeople.org/wsdlpull/123/wsdlpull.spec) and:
* All the packages, including the "doc" one, are generated under the specific architecture (RPMS/x86_64 in my case) directory (as expected).
* Again as you suggested, it appears that it is just rpmlint returning a false positive. It is certainly due to the rpmlint "W: libdir-macro-in-noarch-package" bug (https://bugzilla.redhat.com/show_bug.cgi?id=488930). That bug has been corrected in version from 0.87-1, whereas the latest version available on CentOS 5.3 (Fedora EPEL 5) is 0.85-3 (newer versions are not even available in the epel-testing repository).


So, that package builds nicely on all the platforms (Fedora 10, 11, rawhide and EPEL 5). For instance, for F11/F12: http://koji.fedoraproject.org/koji/taskinfo?taskID=1385925

Comment 5 Denis Arnaud 2009-06-02 17:43:57 UTC
The upstream team is happy with the packaging: http://tech.groups.yahoo.com/group/wsdlpull/message/947 :)

Comment 6 Patrick Monnerat 2009-10-20 14:03:33 UTC
Some remarks:

You should use xargs option -r in
        find . -name 'CVS' -print | xargs rm -rf
        find . -name 'a.out' -print | xargs rm -f
    in prevision of fure versions not containing the targets.

rpmlint wsdlpull-debuginfo-1.23-1.fc10.i386.rpm
wsdlpull-debuginfo.i386: E: debuginfo-without-sources
1 packages and 0 specfiles checked; 1 errors, 0 warnings.
To fix it, use:
    make CFLAGS="${RPM_OPT_FLAGS}" CXXFLAGS="${RPM_OPT_FLAGS}" %{?_smp_mflags}

The license is probably more complex than simply LGPLv2: from the sources, it
    clearly appears there's an intention of using LGPLv2+, but some Makefiles
    don't. In addition there are some header files and XML schemas that seem
    to have an MIT type license, an some .xsd (content) files are copyright
    OReilly. I suggest you recheck all those all license stuff and put
    something looking like:
%license:       LGPLv2 and OReilly and MIT

Latex seems unused during build: BuildRequires and all associated conditionals
    are thus subject to deletion.

There is a conflict at installation time between this package and mono-web on
    file /usr/bin/wsdl (at least on F10; not tested on F11 and rawhide).

%doc on devel package could be left out, since it only copies files that are
    included in the main (required) package.

%global is now preferred over %define (I know it was not the case when you
    wrote this spec file, but rules change).

Comment 7 Denis Arnaud 2009-10-20 16:36:41 UTC
Thanks for those remarks. I'll try to work on it this week-end.

Comment 8 Patrick Monnerat 2010-06-11 15:32:25 UTC
Ping ?
... very long week-end indeed :-)
Are you still interested in importing this package into Fedora ?

Comment 9 Denis Arnaud 2010-06-11 16:06:39 UTC
(In reply to comment #8)
> ... very long week-end indeed :-)

You're right!
I still think it makes sense to have that package into Fedora, even though libcurl (http://curl.haxx.se/libcurl/) seems to represent a viable alternative.

But as I have not so much free time these days, if you want to take the responsibility of that package, do not hesitate...

Comment 10 Patrick Monnerat 2010-06-11 16:14:17 UTC
libcurl only transmits data on IP-based protocols: there is no support for SOAP or XML.

And I do not want to take your package: I started reviewing it (see comment 6) and I just want to know if the files I keep locally about this in-progress review will have a future, or if I can delete them (friday is housekeeping day :-)

Comment 11 Denis Arnaud 2010-06-11 18:37:15 UTC
If you don't mind keeping those files around, it would be nice, as I do not want to give up (at least for now!).
Thanks for your renewed support :)

Comment 12 Denis Arnaud 2010-07-11 20:50:11 UTC
Spec: http://denisarnaud.fedorapeople.org/wsdlpull/123/wsdlpull.spec
SRPM: http://denisarnaud.fedorapeople.org/wsdlpull/123/wsdlpull-1.23-2.fc13.src.rpm

I eventually did it :)
Normally, all your feedbacks (https://bugzilla.redhat.com/show_bug.cgi?id=502686#c6) have been taken into account. I've renamed the two generated binaries, namely wsdl and schema, into respectively wsdlpull and wsdlpull-schema, so as to avoid any name conflict.

I've left the %doc in the -devel sub-package, though.

Moreover, Fedora 13's rpmlint is stricter, and I have worked on reducing warnings. For instance, I had to add man pages (which I will of course submit upstream).

Koji was migrated to a new version of software (v1.4, I believe) this week-end, and I could therefore not submit any task to it.

Do not hesitate.

Comment 13 Patrick Monnerat 2010-07-12 11:00:55 UTC
Some more things:

http://fedoraproject.org/wiki/Packaging:Guidelines#All_patches_should_have_an_upstream_bug_link_or_comment
This is not mandatory, but you planned to submit patches upstream and you forgot to do it. I suggest you do it now and insert the links to the upstream patch reports in your comments.

From comment 6:
> You should use xargs option -r in
>         find . -name 'CVS' -print | xargs rm -rf
>         find . -name 'a.out' -print | xargs rm -f
>     in prevision of future versions not containing the targets.

You did not apply this change. Any reason for that ?

> I've left the %doc in the -devel sub-package, though.
Please read http://lists.fedoraproject.org/pipermail/devel/2010-July/138487.html and http://fedoraproject.org/wiki/Packaging:Guidelines#Duplicate_Files

Buildroot is no longer needed: http://fedoraproject.org/wiki/Packaging:Guidelines#BuildRoot_tag

You can save the "BuildRequires: dos2unix" by replacing the call to dos2unix by

    sed -i -e 's/\r$//'

Comment 15 Denis Arnaud 2010-07-14 08:32:10 UTC
(In reply to comment #13)
> http://fedoraproject.org/wiki/Packaging:Guidelines#All_patches_should_have_an_upstream_bug_link_or_comment
> This is not mandatory, but you planned to submit patches upstream and you
> forgot to do it. I suggest you do it now and insert the links to the upstream
> patch reports in your comments.

Yes, of course, I knew that one :)
I'll keep upstream (Vivek Krishna) updated, and include the corresponding references within the specification file.


> From comment 6:
> > You should use xargs option -r in
> >         find . -name 'CVS' -print | xargs rm -rf
> >         find . -name 'a.out' -print | xargs rm -f
> >     in prevision of future versions not containing the targets.
> 
> You did not apply this change. Any reason for that ?

Sorry for that. I did not understand it the first time: I thought you were referring to the -r option of the rm command, not of the xargs command... I now understand that that GNU extension to xargs is pretty useful when there is no CVS directory or a.out file.


> > I've left the %doc in the -devel sub-package, though.
> Please read
> http://lists.fedoraproject.org/pipermail/devel/2010-July/138487.html and
> http://fedoraproject.org/wiki/Packaging:Guidelines#Duplicate_Files

Yes, I knew both items above. But duplicating files is tolerated... and prevents rpmlint from issuing the following warning:
 wsdlpull-devel.x86_64: W: no-documentation
 The package contains no documentation (README, doc, etc). You have to include
 documentation files.

So, I removed the duplicated documentation files, and the warning is back. But it has no importance, hasn't it?


.../...

Comment 16 Denis Arnaud 2010-07-14 08:32:43 UTC
(In reply to comment #13)
> Buildroot is no longer needed:
> http://fedoraproject.org/wiki/Packaging:Guidelines#BuildRoot_tag

You are right, and I did not remember that one. I've changed the BuildRoot tag line by:
 %{?el5:BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)}
which is apparently the recommended option for EPEL 5 packaging (http://fedoraproject.org/wiki/EPEL/GuidelinesAndPolicies#BuildRoot_tag).

However, rpmlint reports a warning here:
 wsdlpull.src: W: no-buildroot-tag

But, as explained in that warning description, all is fine with a version of rpm greater than 4.6. Which is of course the case for all the active Fedora distributions and for EPEL 6 as well (but not for EPEL distributions for version 5 downwards).


> You can save the "BuildRequires: dos2unix" by replacing the call to dos2unix by
> 
>     sed -i -e 's/\r$//'    

Yes, you are right. Even better, your solution sounds more Unix than that DOS file converter...


The only thing remaining is to submit the patches upstream (to Vivek).


Thanks for your feedback.

Comment 17 Patrick Monnerat 2010-07-15 15:39:27 UTC
rpmlint output:
  wsdlpull.spec: W: no-buildroot-tag
  wsdlpull.src: W: spelling-error %description -l en_US serializer -> serialize, serializes, serialized
  wsdlpull.src: W: no-buildroot-tag
  wsdlpull.x86_64: W: spelling-error %description -l en_US serializer -> serialize, serializes, serialized
  wsdlpull.x86_64: W: shared-lib-calls-exit /usr/lib64/libxmlpull.so.1.0.23 exit.5
  wsdlpull-devel.x86_64: W: no-documentation
  5 packages and 1 specfiles checked; 0 errors, 6 warnings.

  Can be safely ignored. (the exit call in the code is not a packaging problem:
    I suggest you talk with upstream about possible removal and/or replacement).

Koji scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=2321987

Review:

OK  package meets naming and versioning guidelines.
OK  specfile is properly named, is cleanly written and uses macros
    consistently.
OK  source files match upstream:
    wsdlpull-1.23.tar.bz2
      sha1: 7b61549e18bf0e9aae68bfb76264f6e58c8a8d7b
      md5: 68ba60913b5860cae1a07ee8ccdd43cf
OK  summary is OK.
OK  description is OK.
OK  dist tag is present.
OK  build root is OK.
OK  license field matches all the actual licenses.
OK  license is open source-compatible.
OK  license text included in package.
OK  All BuildRequires are needed.
OK  %clean is present.
OK  The package meets the Packaging Guidelines.
OK  package builds in Koji (rawhide).
OK  package installs properly.
OK  rpmlint is OK
OK  final provides and requires are sane:
    rpm -q --provides -p wsdlpull-1.23-3.fc12.x86_64.rpm 
      libschema.so.1()(64bit)  
      libwsdl.so.1()(64bit)  
      libxmlpull.so.1()(64bit)  
      wsdlpull = 1.23-3.fc12
      wsdlpull(x86-64) = 1.23-3.fc12
    rpm -q --requires -p wsdlpull-1.23-3.fc12.x86_64.rpm 
      /sbin/ldconfig  
      /sbin/ldconfig  
      libc.so.6()(64bit)  
      libc.so.6(GLIBC_2.2.5)(64bit)  
      libc.so.6(GLIBC_2.3.4)(64bit)  
      libc.so.6(GLIBC_2.4)(64bit)  
      libcurl.so.4()(64bit)  
      libgcc_s.so.1()(64bit)  
      libgcc_s.so.1(GCC_3.0)(64bit)  
      libm.so.6()(64bit)  
      libpthread.so.0()(64bit)  
      libpthread.so.0(GLIBC_2.2.5)(64bit)  
      libschema.so.1()(64bit)  
      libstdc++.so.6()(64bit)  
      libstdc++.so.6(CXXABI_1.3)(64bit)  
      libstdc++.so.6(CXXABI_1.3.1)(64bit)  
      libstdc++.so.6(GLIBCXX_3.4)(64bit)  
      libstdc++.so.6(GLIBCXX_3.4.11)(64bit)  
      libstdc++.so.6(GLIBCXX_3.4.9)(64bit)  
      libwsdl.so.1()(64bit)  
      libxmlpull.so.1()(64bit)  
      rpmlib(CompressedFileNames) <= 3.0.4-1
      rpmlib(FileDigests) <= 4.6.0-1
      rpmlib(PayloadFilesHavePrefix) <= 4.0-1
      rtld(GNU_HASH)  
      rpmlib(PayloadIsXz) <= 5.2-1
    rpm -q --provides -p wsdlpull-devel-1.23-3.fc12.x86_64.rpm 
      wsdlpull-devel = 1.23-3.fc12
      wsdlpull-devel(x86-64) = 1.23-3.fc12
    rpm -q --requires -p wsdlpull-devel-1.23-3.fc12.x86_64.rpm 
      libschema.so.1()(64bit)  
      libwsdl.so.1()(64bit)  
      libxmlpull.so.1()(64bit)  
      rpmlib(CompressedFileNames) <= 3.0.4-1
      rpmlib(FileDigests) <= 4.6.0-1
      rpmlib(PayloadFilesHavePrefix) <= 4.0-1
      wsdlpull = 1.23-3.fc12
      rpmlib(PayloadIsXz) <= 5.2-1
    rpm -q --provides -p wsdlpull-doc-1.23-3.fc12.noarch.rpm 
      wsdlpull-doc = 1.23-3.fc12
    rpm -q --requires -p wsdlpull-doc-1.23-3.fc12.noarch.rpm 
      rpmlib(CompressedFileNames) <= 3.0.4-1
      rpmlib(FileDigests) <= 4.6.0-1
      rpmlib(PayloadFilesHavePrefix) <= 4.0-1
      rpmlib(PayloadIsXz) <= 5.2-1
OK  %check is not present; no test suite upstream.
OK  shared libraries are added to the regular linker search paths: ldconfig
    properly called in %post and %postun
OK  owns the directories it creates.
OK  doesn't own any directories it shouldn't.
OK  no duplicates in %files.
OK  file permissions are appropriate.
OK  code and allowed content.
OK  There is a separate -doc subpackage for the documentation.
OK  %docs are not necessary for the proper functioning of the package.
OK  headers are in the -devel subpackage.
OK  no pkgconfig files.
OK  no static libraries.
OK  no libtool .la files.
OK  filenames are all valid UTF-8.


SHOULD: All patches should have an upstream bug link or comment
    Why don't you simply leave them at
      http://sourceforge.net/tracker/?group_id=96736&atid=615730
    and reference patch reports here ?

Package approved

Comment 18 Denis Arnaud 2010-07-15 18:43:35 UTC
(In reply to comment #17)
> SHOULD: All patches should have an upstream bug link or comment
>     Why don't you simply leave them at
>       http://sourceforge.net/tracker/?group_id=96736&atid=615730
>     and reference patch reports here?

Yes, but apparently, the whole communication (including bugs and patches) should go through the dedicated Yahoo! group: http://tech.groups.yahoo.com/group/wsdlpull/ . I can of course create bug tickets, but they may never be read by the person they should reach.

So, I have sent an email to Vivek (upstream owner), providing him with the three patches.
[Note that I have (Vivek gave me, last year) access rights to publish packages on Sourceforge (http://sourceforge.net/projects/wsdlpull/files/binaries/wsdlpull%201.23/), but no write access on the CVS repository]

I'll keep the specification file updated with latest debates around those patches.
 

> Package approved    

Thanks for that extensive review!
Now, I am unable to interact with the secured Koji server: http://lists.fedoraproject.org/pipermail/packaging/2010-July/007283.html
I've fought hours and hours to find a work around (having tried on several Fedora distributions, thanks to VirtualBox, with several distinct user accounts), but could not.

So, do not hesitate to create the package in CVS yourself. Otherwise, I'm afraid I won't be able to create it myself :(

Comment 19 Patrick Monnerat 2010-07-16 17:20:46 UTC
No hurry for me. I won't take your baby just before birth :-)
If you have infrastructure access problems, check if your certificate is not outdated... Also last week I had several CVS/Koji connection problems: I reported them to the infrastructure trac system (https://fedorahosted.org/fedora-infrastructure/), they answered very kindly and they mended it.
Else you better ask for help on some mailing list, but in any case you should be able to do the job yourself.
Good luck.

Comment 20 Kevin Fenzi 2010-07-16 17:28:50 UTC
Once you get access figured out, please reset the fedora-cvs flag to ? and 
add a CVS request here.

Comment 21 Denis Arnaud 2010-07-18 10:03:10 UTC
(In reply to comment #20)
> Once you get access figured out, please reset the fedora-cvs flag to ? and 
> add a CVS request here.    

New Package CVS Request
=======================
Package Name: wsdlpull
Short Description: C++ Web Services client library
Owners: denisarnaud
Branches: F-11 F-12 F-13 EL-5 EL-6 # F-14 (if available)
InitialCC: denisarnaud
=======================

I can manage the CVS request from a network server (not my home desktop on which I experiment Koji connection issues) I own.

Comment 22 Denis Arnaud 2010-07-18 22:24:42 UTC
(In reply to comment #16)
> The only thing remaining is to submit the patches upstream (to Vivek).

All the patches have been committed to the WSDLPull official repository, and integrated in the new release, namely 1.24. That latter has to be approved by the project owner, namely Vivek Krishna. Once it will be done, I will of course update the Fedora packaging CVS repository with that last version.

Comment 23 Kevin Fenzi 2010-07-19 04:44:07 UTC
CVS done (by process-cvs-requests.py).

We no longer do F11 branches (it's end of life)
We aren't yet doing F14 branches. 

Otherwise, all done. ;)

Comment 24 Fedora Update System 2010-07-19 21:24:40 UTC
wsdlpull-1.23-3.el5 has been submitted as an update for Fedora EPEL 5.
http://admin.fedoraproject.org/updates/wsdlpull-1.23-3.el5

Comment 25 Fedora Update System 2010-07-19 21:26:16 UTC
wsdlpull-1.23-3.fc13 has been submitted as an update for Fedora 13.
http://admin.fedoraproject.org/updates/wsdlpull-1.23-3.fc13

Comment 26 Fedora Update System 2010-07-19 21:26:38 UTC
wsdlpull-1.23-3.fc12 has been submitted as an update for Fedora 12.
http://admin.fedoraproject.org/updates/wsdlpull-1.23-3.fc12

Comment 27 Fedora Update System 2010-07-21 20:01:48 UTC
wsdlpull-1.23-3.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 wsdlpull'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/wsdlpull-1.23-3.el5

Comment 28 Fedora Update System 2010-08-06 19:56:18 UTC
wsdlpull-1.23-3.el5 has been pushed to the Fedora EPEL 5 stable repository.  If problems still persist, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.