Bug 469273 - Review Request: quickfix - development library for FIX based applications
Summary: Review Request: quickfix - development library for FIX based applications
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Mamoru TASAKA
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-10-31 01:04 UTC by Hayden James
Modified: 2009-01-07 09:31 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2008-11-19 03:52:48 UTC
Type: ---
Embargoed:
mtasaka: fedora-review+
kevin: fedora-cvs+


Attachments (Terms of Use)

Description Hayden James 2008-10-31 01:04:50 UTC
Spec URL: http://hayden.doesntexist.com/~hjames/quickfix.spec
SRPM URL: http://hayden.doesntexist.com/~hjames/quickfix-1.12.4-1.fc9.src.rpm
Description: QuickFIX is a full-featured open source FIX engine, currently compatible with the FIX 4.0-4.4 spec. It runs on Windows, Linux, Solaris, FreeBSD and Mac OS X. API's are available for C++, Java, .NET, Python and Ruby.

This is my first package submittal to Fedora/RedHat and hence I'll need a package sponser.

Comment 1 Itamar Reis Peixoto 2008-11-01 14:37:19 UTC
the first thing to be checked before continue.

is the license compatible with fedora ?

https://fedoraproject.org/wiki/Licensing
https://fedoraproject.org/wiki/Packaging/LicensingGuidelines

Comment 2 Hayden James 2008-11-01 15:34:21 UTC
Here's the licensing information:
http://www.quickfixengine.org/quickfix/doc/html/license.html

I'll post to fedora-legal-list

Comment 3 Hayden James 2008-11-01 15:38:19 UTC
Actually, looks like you beat me to the punch. :)

Comment 4 Itamar Reis Peixoto 2008-11-03 14:57:19 UTC
don't worry, I will keep my fingers away from your eyes

the quickfix people answered my email, about license.

http://sourceforge.net/mailarchive/forum.php?thread_name=20081103071943.996574bdd30485e55131bd2b2a76da64.bb74004a9c.wbe%40email.secureserver.net&forum_name=quickfix-users

"
It is released with a Apache/BSD style license, it is an OSI approved
license.

--oren
"

now, the license is no more a problem, I belive you can put 
License: BSD
in your spec file.

I don`t know if will be easy to package this, because quickfix seems to be a library, not a program.


libquickfix-C++
libquickfix-Java
libquickfix-NET
libquickfix-Python
libquickfix-Ruby

the best to to is to wait a more experienced developer l@@k your spec file.

Comment 5 Mamoru TASAKA 2008-11-03 15:25:50 UTC
I guess this is ASL 1.1.
http://www.apache.org/licenses/LICENSE-1.1

Perhaps spot will answer this in fedora-legal-list, however
I guess spot will also say so.

Comment 6 Hayden James 2008-11-04 02:42:17 UTC
I made the license change to BSD.  I can make the change in the future to create packages for other languages, however the current package builds a C++ based shared library and a devel package containing header files for development.

Comment 7 Mamoru TASAKA 2008-11-04 03:33:55 UTC
(In reply to comment #6)
> I made the license change to BSD. 

From spot's reply:
https://www.redhat.com/archives/fedora-legal-list/2008-November/msg00011.html
Please use ASL 1.1.

(Removing FE-Legal)

Comment 8 Hayden James 2008-11-04 12:08:11 UTC
Ok, I've instead changed it to ASL 1.1.

Comment 9 Mamoru TASAKA 2008-11-07 18:01:28 UTC
(In reply to comment #8)
> Ok, I've instead changed it to ASL 1.1.

Then would you post the new URLs of your spec/srpm?
Note that every time you change your spec/srpm, please also change the
release number of your spec file to avoid confusion.

Comment 11 Mamoru TASAKA 2008-11-08 18:22:48 UTC
For 1.12.4-3:

!   You can make your spec file based on the skeleton spec file
    created by 
    $ rpmdev-newspec -t lib quickfix

* Group
  - Usually main package of this type has "Group: System Environment/Libraries"

* License
---------------------------------------------
src/C++/FlexLexer.h		BSD with advertising
src/C++/strptime.c		BSD with advertising
src/getopt.c			BSD with advertising
---------------------------------------------
  - The license tag must be "ASL 1.1 and BSD with advertising"

* SourceURL
  - For sourceforge hosted source tarball, please refer to
    https://fedoraproject.org/wiki/Packaging/SourceURL#Sourceforge.net

* BuildRequires
  - Remove all redundant (unneeded) BuildRequires.
  ! "libtool,autoconf,automake" are not needed because
    no autotools are called
  ! "zlib libxml2" are not needed because the corresponsing -devel
    packages are in BuildRequires

* Dependency for -devel subpackage
  - -devel subpackage must have "Requires: %{name} = %{version}-%{release}"
    (see: "MUST: In the vast majority of cases, devel ... of
     https://fedoraproject.org/wiki/Packaging/ReviewGuidelines )

* Parallel make
  https://fedoraproject.org/wiki/Packaging/Guidelines#Parallel_make
  - Support parallel make if possible. If this package does not
    support parallel make write in the spec file as comments
    that this package does not support it.

* Compiler flags
----------------------------------------------
   410  + make
   411  make  all-recursive
   412  make[1]: Entering directory `/builddir/build/BUILD/quickfix'
   413  Making all in src
   414  make[2]: Entering directory `/builddir/build/BUILD/quickfix/src'
   415  Making all in C++
   416  make[3]: Entering directory `/builddir/build/BUILD/quickfix/src/C++'
   417  Making all in test
   418  make[4]: Entering directory `/builddir/build/BUILD/quickfix/src/C++/test'
   419  if /bin/sh ../../../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I../../.. -I..    -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Wall -ansi -Wpointer-arith -Wwrite-strings      -I/usr/include/libxml2    -O0 -g -MT FieldBaseTestCase.lo -MD -MP -MF ".deps/FieldBaseTestCase.Tpo" \
   420            -c -o FieldBaseTestCase.lo `test -f 'FieldBaseTestCase.cpp' || echo './'`FieldBaseTestCase.cpp; \
   421          then mv ".deps/FieldBaseTestCase.Tpo" ".deps/FieldBaseTestCase.Plo"; \
   422          else rm -f ".deps/FieldBaseTestCase.Tpo"; exit 1; \
   423          fi
----------------------------------------------
  - Fedora uses "-O2" compiler flags (, which can be checked by
    $ rpm --eval %optflags ), which is replaced by the latter "-O0",
    which needs fixing.

* %files entry
  - There are some packaging issues about %files entry
    * %_libdir/libquickfix.so.10 must included in main package
    * %_libdir/libquickfix.so must be in -devel package
    * %_libdir/*.a _must_ not be packaged:
      https://fedoraproject.org/wiki/Packaging/Guidelines#Exclusion_of_Static_Libraries

  ! Usually with Makefiles generated by recent autotools 
    files can be correctly installed with
-------------------------------------------------------
make DESTDIR=%{buildroot} install
-------------------------------------------------------
    However this package does not support DESTDIR=..., 
    so using %makeinstall is preferable (although this must
    usually be avoided as written on
    https://fedoraproject.org/wiki/Packaging/Guidelines#Why_the_.25makeinstall_macro_should_not_be_used
    ) 
    than installing files manually by "cp -a" as you are
    doing now (the latter method may cause make mistakes much
    more than using %makeinstall)

    When using %makeinstall, please also note in the spec file
    that this package does not DESTDIR.

* Duplicate files
  - Many files are listed twice:
-------------------------------------------------------
  1173  Processing files: quickfix-debuginfo-1.12.4-3.fc10
  1174  Processing files: quickfix-devel-1.12.4-3.fc10
  1175  warning: File listed twice: /usr/include/quickfix/Acceptor.h
  1176  warning: File listed twice: /usr/include/quickfix/Application.h
  1177  warning: File listed twice: /usr/include/quickfix/CallStack.h
  1178  warning: File listed twice: /usr/include/quickfix/ConfigLexer.h
.................
-------------------------------------------------------
   Note that the %files entry
-------------------------------------------------------
%files
%{_includedir}/quickfix
-------------------------------------------------------
   contains the directory %_includedir/quickfix itself _and_ all
   files/directories/etc under %_includedir/quickfix.

Comment 12 Hayden James 2008-11-09 01:30:31 UTC
Ok I believed I fixed most of the above.  Here's the updated files:
http://hayden.doesntexist.com/~hjames/quickfix.spec
http://hayden.doesntexist.com/~hjames/quickfix-1.12.4-4.fc9.src.rpm

Comment 13 Hayden James 2008-11-09 01:33:34 UTC
The only issue I have is whether or not "Group: System Environment/Libraries" is more correct than "Development/Libraries".

Comment 14 Mamoru TASAKA 2008-11-09 18:56:19 UTC
For -4:

* BuildRequires
  - build.log shows:
------------------------------------------------------
   348  checking for boost::pool_allocator... 
   349  no
   350  checking for boost::fast_pool_allocator... 
   351  no
------------------------------------------------------
    I guess "BuildRequires: boost-devel" must be added

!!!! 
    By the way, would you consider to build
    mysql/postgresql/python/ruby/java bindings?

* Requires for -devel subpackage
  - A package which contains pkgconfig .pc file must have
    "Requires: pkgconfig":
    https://fedoraproject.org/wiki/Packaging/ReviewGuidelines

  - Also installed quickfix.pc contains:
------------------------------------------------------
Requires: libxml-2.0
------------------------------------------------------
    This means that -devel subpackage must have
    "Requires: libxml2-devel".

* 64 bits architecture issue
  - quickfix.pc.in contains
-------------------------------------------------------
     3  libdir=@prefix@/lib
-------------------------------------------------------
    @prefix@/lib is expanded as /usr/lib (on Fedora) even on
    64 bits architecture, while on those machine this must
    be /usr/lib64.
    Usually replacing this with libdir=@libdir@ will fix
    this issue

* Use of %makeinstall
  - Please write comments before calling %makeinstall that
    this tarball does not support "make install DESTDIR=foo".

* Directory ownership issue
  - Currently the directory %_datadir/%name itself is not
    owned by any packages.
    Note that
-------------------------------------------------------
%files
%{_datadir}/%{name}/
-------------------------------------------------------
    contains the directory %_datadir/%name itself and all
    files/directories/etc under %_datadir/%name.
    ref:
    https://fedoraproject.org/wiki/Packaging/UnownedDirectories#Wildcarding_Files_inside_a_Created_Directory

* libtool .la files
  - Usually libtool .la files must be removed.
    https://fedoraproject.org/wiki/Packaging/Guidelines#Exclusion_of_Static_Libraries

* %changelog format
  - For Fedora CVS usage I recomment to add one line between
    every %changelog entry like:
--------------------------------------------------------
* Sat Nov 08 2008 Hayden James - 1.12.4-4
- Changed license to ASL 1.1 and BSD with advertising.  Improved spec file to better conform

* Sat Nov 07 2008 Hayden James - 1.12.4-3
- Changed license to ASL 1.1

* Sat Nov 03 2008 Hayden James - 1.12.4-2
- Changed license to BSD
--------------------------------------------------------

Comment 15 Hayden James 2008-11-09 19:38:41 UTC
Ok, I made all the changes suggested above.  I think for a release in the future I'll build the bindings for other languages.  But here's the updated files:

http://hayden.doesntexist.com/~hjames/quickfix.spec
http://hayden.doesntexist.com/~hjames/quickfix-1.12.4-5.fc9.src.rpm

Comment 16 Mamoru TASAKA 2008-11-10 18:36:30 UTC
For -5:

(In reply to comment #11)
> For 1.12.4-3:
> * Compiler flags
>   - Fedora uses "-O2" compiler flags (, which can be checked by
>     $ rpm --eval %optflags ), which is replaced by the latter "-O0",
>     which needs fixing.

  - This issue is not yet fixed. This can be fixed by
------------------------------------------------
%prep
%setup -q -n quickfix
%patch0 -p1
%patch1 -p1
sed -i.flags -e 's|-O0 -g||' src/C++/test/Makefile.in

%build
%configure --enable-shared
......
------------------------------------------------

* Requires
  - Now "BuildRequires: boost-devel" is added, HAVE_BOOST_FAST_POOL_ALLOCATOR
    is defined on config.h and this affects installed config.h
    (however see below: usually config.h must not be installed)
    So now quickfix-devel should have "Requires: boost-devel", too

* Excluding .la files
  - I prefer to use
------------------------------------------------
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
------------------------------------------------
    instead of using %exclude in this case.
  - Anyway if you use %exclude, please write this line
    after %defattr(-,root,root,-) line
    (otherwise rpmlint complains)

* autotool generated header files inclusion
  - -devel subpackage installs autotool generated "config.h"
    as a header file.
    This must be avoid, because shipping "config.h" will easily cause
    namespace conflict when compiling codes with quickfix-devel:
    c.f.
    bug 208034 comment 43

    A quick workaround can be:
    - rename installed "config.h" to "quickfix-config.h"
    - and the line #include "config.h" in installed Utility.h 
      to "#include "quickfix-config.h"".

Then:

-------------------------------------------------------------
NOTE: Before being sponsored:

This package will be accepted with another few work. 
But before I accept this package, someone (I am a candidate) 
must sponsor you.

Once you are sponsored, you have the right to review other 
submitters' review requests and approve the packages formally. 
For this reason, the person who want to be sponsored (like you) 
are required to "show that you have an understanding 
of the process and of the packaging guidelines" as is described
on :
http://fedoraproject.org/wiki/PackageMaintainers/HowToGetSponsored

Usually there are two ways to show this.
A. submit other review requests with enough quality.
B. Do a "pre-review" of other person's review request
   (at the time you are not sponsored, you cannot do
   a formal review)

When you have submitted a new review request or have pre-reviewed other 
person's review request, please write the bug number on this bug report 
so that I can check your comments or review request.

Fedora package collection review requests which are waiting for someone to
review can be checked on:
http://fedoraproject.org/PackageReviewStatus/NEW.html
(NOTE: please don't choose "Merge Review")


Review guidelines are described mainly on:
http://fedoraproject.org/wiki/Packaging/ReviewGuidelines
http://fedoraproject.org/wiki/Packaging/Guidelines
http://fedoraproject.org/wiki/Packaging/ScriptletSnippets
------------------------------------------------------------

Comment 17 Hayden James 2008-11-11 06:51:01 UTC
Ok I have fixed the last of the bugs you've found. Here's the new package and spec file:

http://hayden.doesntexist.com/~hjames/quickfix-1.12.4-6.fc9.src.rpm
http://hayden.doesntexist.com/~hjames/quickfix.spec

In terms of getting sponsored, I think I'm going to work on another C++ library I use a lot 'cryptopp.'  Once I have that one complete, I will post another bug and link to it here.  Thanks a lot for your time and help.

Comment 18 Mamoru TASAKA 2008-11-11 08:46:31 UTC
I will recheck your latest srpm later, however:

(In reply to comment #17)
> In terms of getting sponsored, I think I'm going to work on another C++ library
> I use a lot 'cryptopp.'  Once I have that one complete, I will post another bug
> and link to it here.  Thanks a lot for your time and help.

 - cryptopp is already in Fedora
   https://admin.fedoraproject.org/pkgdb/packages/name/cryptopp

Comment 19 Hayden James 2008-11-11 14:06:01 UTC
Great.  The only package I use extensively for C++ development besides quickfix and cryptopp, that comes to mind, is ACE (http://www.cs.wustl.edu/~schmidt/ACE.html) but it appears someone has some working fedora packages, it just has not been included: http://dist.bonsai.com/ken/ace_tao_rpm/SRC/5.6.6-1/.  Also, perhaps OTL, which would be extremely simple to package: http://otl.sourceforge.net/

Comment 20 Mamoru TASAKA 2008-11-12 16:00:50 UTC
(In reply to comment #19)
> that comes to mind, is ACE
> (http://www.cs.wustl.edu/~schmidt/ACE.html) but it appears someone has some
> working fedora packages, it just has not been included:
> http://dist.bonsai.com/ken/ace_tao_rpm/SRC/5.6.6-1/.  

  - This is bug 450164, however currently this one is blocked by license
    issue (see the discussion from bug 450164 comment 18)

> Also, perhaps OTL, which
> would be extremely simple to package: http://otl.sourceforge.net/

  - This one does not seems to be in Fedora currently.

Comment 21 Hayden James 2008-11-13 03:38:12 UTC
Well I just packaged OTL, wasn't really challenging, but here it is:

http://hayden.doesntexist.com/~hjames/otl-4.0.176-1.fc9.src.rpm
http://hayden.doesntexist.com/~hjames/otl.spec

I probably won't even seek to get that included, but I thought of another lib I've used in the past that would be helpful which is snmp++:

http://www.agentpp.com/index.html

Btw, any chance to look at the latest quickfix spec file?  Thanks.

Comment 22 Mamoru TASAKA 2008-11-13 07:02:21 UTC
(In reply to comment #21)
> Well I just packaged OTL, wasn't really challenging, but here it is:
> 
> http://hayden.doesntexist.com/~hjames/otl-4.0.176-1.fc9.src.rpm
> http://hayden.doesntexist.com/~hjames/otl.spec

- Please create another review request for this package. By the way
  Some other maintainer names srpm/binary rpms which contain only
  C++ templete as "foo-devel" from the beginning:
  Example: bug 469808

> I probably won't even seek to get that included, but I thought of another lib
> I've used in the past that would be helpful which is snmp++:
> http://www.agentpp.com/index.html

- This one does not seem to be in Fedora currently.

> Btw, any chance to look at the latest quickfix spec file?  Thanks.
- Will check later...

Comment 23 Mamoru TASAKA 2008-11-13 16:35:46 UTC
Okay, this package is now good with replacing /usr/include with %{_includedir}.

Now I will wait for your another review request.

Comment 24 Hayden James 2008-11-14 05:03:04 UTC
I submitted another review request here:
https://bugzilla.redhat.com/show_bug.cgi?id=471522

Comment 25 Hayden James 2008-11-14 05:39:19 UTC
I also submitted a review request for SNMP++
https://bugzilla.redhat.com/show_bug.cgi?id=471527

Comment 26 Mamoru TASAKA 2008-11-15 17:07:20 UTC
As this package itself is now okay (but please fix the issue on
my comment 23 when importing to Fedora CVS) and as you are working
on other packages, now I will approve this package.

---------------------------------------------------------------
     This package (quickfix) is APPROVED by mtasaka
---------------------------------------------------------------

Please follow the procedure written on:
http://fedoraproject.org/wiki/PackageMaintainers/Join
from "Get a Fedora Account".
After you request for sponsorship a mail will be sent to sponsor 
members automatically (which is invisible for you) which notifies 
that you need a sponsor. After that, please also write on
this bug for confirmation that you requested for sponsorship and
your FAS (Fedora Account System) name. Then I will sponsor you.

If you want to import this package into Fedora 8/9, you also have
to look at
http://fedoraproject.org/wiki/Infrastructure/UpdatesSystem/Bodhi-info-DRAFT
(after once you rebuilt this package on koji Fedora rebuilding system).

If you have questions, please ask me.

Comment 27 Hayden James 2008-11-15 17:29:26 UTC
Ok, I signed up for an account and requested sponsorship, the account name is 'hjames'.

Comment 28 Mamoru TASAKA 2008-11-15 17:53:49 UTC
Okay, now I am sponsoring you. Please follow wiki again.

Removing NEEDSPONSOR.

Comment 29 Hayden James 2008-11-15 21:36:27 UTC
New Package CVS Request
=======================
Package Name: quickfix
Short Description: QuickFIX is a full-featured open source FIX engine
Owners: hjames
Branches: F-10 F-11
InitialCC: mtasaka

Comment 30 Kevin Fenzi 2008-11-16 20:23:15 UTC
there is no F-11 branch, devel is the branch that will someday become F-11. ;) 

cvs done.

Comment 31 Hayden James 2008-11-16 22:43:18 UTC
Package Change Request
======================
Package Name: quickfix
New Branches: F-9
Owners: hjames

Comment 32 Kevin Fenzi 2008-11-19 01:53:13 UTC
cvs done.

Comment 33 Fedora Update System 2008-11-19 03:29:58 UTC
quickfix-1.12.4-6.fc9 has been submitted as an update for Fedora 9.
http://admin.fedoraproject.org/updates/quickfix-1.12.4-6.fc9

Comment 34 Mamoru TASAKA 2008-11-19 03:52:48 UTC
Thanks.

Comment 35 Fedora Update System 2008-11-21 10:57:17 UTC
quickfix-1.12.4-6.fc9 has been pushed to the Fedora 9 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 36 Fedora Update System 2009-01-07 09:31:33 UTC
quickfix-1.12.4-6.fc10 has been pushed to the Fedora 10 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.