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.
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
Here's the licensing information: http://www.quickfixengine.org/quickfix/doc/html/license.html I'll post to fedora-legal-list
Actually, looks like you beat me to the punch. :)
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.
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.
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.
(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)
Ok, I've instead changed it to ASL 1.1.
(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.
Here's the updated files: http://hayden.doesntexist.com/~hjames/quickfix-1.12.4-3.fc9.src.rpm http://hayden.doesntexist.com/~hjames/quickfix.spec
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.
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
The only issue I have is whether or not "Group: System Environment/Libraries" is more correct than "Development/Libraries".
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 --------------------------------------------------------
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
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 ------------------------------------------------------------
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.
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
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/
(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.
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.
(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...
Okay, this package is now good with replacing /usr/include with %{_includedir}. Now I will wait for your another review request.
I submitted another review request here: https://bugzilla.redhat.com/show_bug.cgi?id=471522
I also submitted a review request for SNMP++ https://bugzilla.redhat.com/show_bug.cgi?id=471527
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.
Ok, I signed up for an account and requested sponsorship, the account name is 'hjames'.
Okay, now I am sponsoring you. Please follow wiki again. Removing NEEDSPONSOR.
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
there is no F-11 branch, devel is the branch that will someday become F-11. ;) cvs done.
Package Change Request ====================== Package Name: quickfix New Branches: F-9 Owners: hjames
cvs done.
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
Thanks.
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.
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.