Bug 821511

Summary: Review Request: hornetq - High performance messaging system
Product: [Fedora] Fedora Reporter: Marek Goldmann <mgoldman>
Component: Package ReviewAssignee: Mary Ellen Foster <mefoster>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: mefoster, misc, mizdebsk, notting, package-review, sochotni
Target Milestone: ---Flags: mefoster: fedora-review+
gwync: 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: 2012-06-05 23:07:05 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 Marek Goldmann 2012-05-14 18:02:35 UTC
Spec URL: http://goldmann.fedorapeople.org/package_review/hornetq/2.2.16-1/hornetq.spec
SRPM URL: http://goldmann.fedorapeople.org/package_review/hornetq/2.2.16-1/hornetq-2.2.16-1.fc17.src.rpm
Description:

HornetQ is an open source project to build a multi-protocol, embeddable,
very high performance, clustered, asynchronous messaging system.

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

Comment 1 Marek Goldmann 2012-05-15 12:24:20 UTC
Reverting to version 2.2.13, as the previous one (2.2.16) is NOT compatible with AS7 (7.1.1.Final).

Scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=4078189

Spec URL:
http://goldmann.fedorapeople.org/package_review/hornetq/2.2.13-1/hornetq.spec
SRPM URL:
http://goldmann.fedorapeople.org/package_review/hornetq/2.2.13-1/hornetq-2.2.13-1.fc17.src.rpm

Comment 3 Michael S. 2012-05-20 15:59:50 UTC
Hi,

I am quickly looking at the spec, here is a few comments :
- patch should be annoted, ie, do they come from upstream, if not, have they been sent, and how ( mail, link to bug, etc )
https://fedoraproject.org/wiki/Packaging:Guidelines#All_patches_should_have_an_upstream_bug_link_or_comment

- the devel subpackage need to have the license in %doc, as it can be installed without the main package 
https://fedoraproject.org/wiki/Packaging:LicensingGuidelines#Subpackage_Licensing

- not sure that the -devel should requires "automake libtool autoconf". AFAIK, people can build against a library without using autotools, no ?

- why do the -devel requires gcc-c++ ? isn't the .so usable without it ?
( there is no .h with it, so I could use it without gcc , no ? )

- same goes for the .la, they should not be packaged (AFAIK)
https://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_Static_Libraries

- there is a global variable not used :
%global namedversion %{version}%{?namedreltag}
so maybe it is not needed and should be removed ?

Comment 4 Marek Goldmann 2012-05-23 08:20:41 UTC
Hi Michael!

(In reply to comment #3)
> Hi,
> 
> I am quickly looking at the spec, here is a few comments :
> - patch should be annoted, ie, do they come from upstream, if not, have they
> been sent, and how ( mail, link to bug, etc )
> https://fedoraproject.org/wiki/Packaging:
> Guidelines#All_patches_should_have_an_upstream_bug_link_or_comment

These patches are required to build this piece of software on Fedora. I tried to make the names  pretty self-explanatory. The guidelines say it SHOULD be annotated, but it's not a MUST.

> - the devel subpackage need to have the license in %doc, as it can be
> installed without the main package 
> https://fedoraproject.org/wiki/Packaging:
> LicensingGuidelines#Subpackage_Licensing

I'll fix this soon.

> - not sure that the -devel should requires "automake libtool autoconf".
> AFAIK, people can build against a library without using autotools, no ?

I need to consult this.

> - why do the -devel requires gcc-c++ ? isn't the .so usable without it ?
> ( there is no .h with it, so I could use it without gcc , no ? )

Same as above - I need to consult this.

> - same goes for the .la, they should not be packaged (AFAIK)
> https://fedoraproject.org/wiki/Packaging:
> Guidelines#Packaging_Static_Libraries

I will remove it.

> - there is a global variable not used :
> %global namedversion %{version}%{?namedreltag}
> so maybe it is not needed and should be removed ?

Hah, yeah - I'll remove it.


I'll have answers for above unanswered questions and a new package soon.

Comment 5 Mikolaj Izdebski 2012-05-23 09:03:11 UTC
> > - not sure that the -devel should requires "automake libtool autoconf".
> > AFAIK, people can build against a library without using autotools, no ?
> 
> I need to consult this.

You definitely don't need these. Autotools are used at build time only. And if someone needs to use your library with autotools, he must install them on his own.

> > - why do the -devel requires gcc-c++ ? isn't the .so usable without it ?
> > ( there is no .h with it, so I could use it without gcc , no ? )
> 
> Same as above - I need to consult this.

You don't need C++ compiler either. You could use the library from some other languages, like assembly or C. And if you want to use it from C++ -- you install a C++ compiler of choice on your own.

Comment 6 Mikolaj Izdebski 2012-05-23 09:05:33 UTC
> > - the devel subpackage need to have the license in %doc, as it can be
> > installed without the main package 
> > https://fedoraproject.org/wiki/Packaging:
> > LicensingGuidelines#Subpackage_Licensing
> 
> I'll fix this soon.

The question would be: Is devel package useful without main package? It should probably Require: hornetq = %{version}-%{release}, and in this case installing license files in devel pkg wouldn't be necessary.

Comment 7 Stanislav Ochotnicky 2012-05-23 09:16:55 UTC
It should actually be "Requires: %{name}%{?_isa} = %{version}-%{release}" as per https://fedoraproject.org/wiki/Packaging/Guidelines#Requiring_Base_Package

Comment 8 Marek Goldmann 2012-05-23 09:50:33 UTC
Spec URL:
http://goldmann.fedorapeople.org/package_review/hornetq/2.2.13-3/hornetq.spec
SRPM URL:
http://goldmann.fedorapeople.org/package_review/hornetq/2.2.13-3/hornetq-2.2.13-3.fc17.src.rpm

Changes:

- Removed unnecessary %%global
- Added License file to -devel subpackage
- Removed static files

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

Comment 9 Mary Ellen Foster 2012-05-23 11:22:41 UTC
I will review this package

Comment 10 Mary Ellen Foster 2012-05-23 12:12:10 UTC
Issues:
[!]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
     Note: These BR are not needed: gcc-c++
See: http://fedoraproject.org/wiki/Packaging/Guidelines#Exceptions_2

[!]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
==> Do you really need Requires: libaoi-devel on the -devel package?

[!]: SHOULD SourceX / PatchY prefixed with %{name}.
     Note: Source0: hornetq-%{version}-CLEAN.tar.xz
     (hornetq-%{version}-CLEAN.tar.xz) Patch0: 0001-Removed-maven-buildmagic-
     thirdparty-plugin-dependenc.patch (0001-Removed-maven-buildmagic-
     thirdparty-plugin-dependenc.patch) Patch1: 0002-Removed-spring-
     dependency.patch (0002-Removed-spring-dependency.patch) Patch2: 0003-gui-
     aid-changes.patch (0003-gui-aid-changes.patch) Patch3: 0004-JDK7-fix-for-
     FileChannel-constructor.patch (0004-JDK7-fix-for-FileChannel-
     constructor.patch) Patch4: 0005-Libraries-paths.patch (0005-Libraries-
     paths.patch) Patch5: 0006-Make-creation-of-pom-files-easier.patch (0006
     -Make-creation-of-pom-files-easier.patch) Patch6: 0007-Add-jdepend-
     dependency-to-run-javadoc-creation.patch (0007-Add-jdepend-dependency-to-
     run-javadoc-creation.patch) Patch7: 0008-Native-build-fixes.patch (0008
     -Native-build-fixes.patch)
==> Add %{name} to the filename of Source0 and all of the patches

[!]: MUST Rpmlint output is silent.
==> Okay
rpmlint hornetq-devel-2.2.13-3.fc18.i686.rpm

hornetq-devel.i686: W: invalid-url URL: http://www.jboss.org/hornetq HTTP Error 403: Forbidden
1 packages and 0 specfiles checked; 0 errors, 1 warnings.


rpmlint hornetq-2.2.13-3.fc18.i686.rpm

hornetq.i686: W: spelling-error %description -l en_US multi -> mulch, mufti
hornetq.i686: W: spelling-error %description -l en_US embeddable -> embedded
hornetq.i686: W: invalid-url URL: http://www.jboss.org/hornetq HTTP Error 403: Forbidden
hornetq.i686: W: no-manual-page-for-binary hornetq-disktest
1 packages and 0 specfiles checked; 0 errors, 4 warnings.


rpmlint hornetq-2.2.13-3.fc18.src.rpm

hornetq.src: W: spelling-error %description -l en_US multi -> mulch, mufti
hornetq.src: W: spelling-error %description -l en_US embeddable -> embedded
hornetq.src: W: invalid-url URL: http://www.jboss.org/hornetq HTTP Error 403: Forbidden
hornetq.src: W: invalid-url Source0: hornetq-2.2.13-CLEAN.tar.xz
1 packages and 0 specfiles checked; 0 errors, 4 warnings.


rpmlint hornetq-javadoc-2.2.13-3.fc18.i686.rpm

hornetq-javadoc.i686: W: spelling-error Summary(en_US) Javadocs -> Java docs, Java-docs, Avocados
hornetq-javadoc.i686: W: invalid-url URL: http://www.jboss.org/hornetq HTTP Error 403: Forbidden
1 packages and 0 specfiles checked; 0 errors, 2 warnings.


rpmlint hornetq-debuginfo-2.2.13-3.fc18.i686.rpm

hornetq-debuginfo.i686: W: invalid-url URL: http://www.jboss.org/hornetq HTTP Error 403: Forbidden
1 packages and 0 specfiles checked; 0 errors, 1 warnings.


See: http://fedoraproject.org/wiki/Packaging/Guidelines#rpmlint



Package Review
==============

Key:
- = N/A
x = Pass
! = Fail
? = Not evaluated



==== C/C++ ====
[x]: MUST Header files in -devel subpackage, if present.
[x]: MUST ldconfig called in %post and %postun if required.
[x]: MUST Package does not contain any libtool archives (.la)
[x]: MUST Development (unversioned) .so files in -devel subpackage, if
     present.


==== Generic ====
[x]: MUST Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
[x]: MUST %build honors applicable compiler flags or justifies otherwise.
[!]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
     Note: These BR are not needed: gcc-c++
[x]: MUST Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[x]: MUST Package contains no bundled libraries.
[x]: MUST Changelog in prescribed format.
[x]: MUST Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: Clean would be needed if support for EPEL is required
[x]: MUST Sources contain only permissible code or content.
[x]: MUST Each %files section contains %defattr if rpm < 4.4
     Note: Note: defattr macros not found. They would be needed for EPEL5
[x]: MUST Macros in Summary, %description expandable at SRPM build time.
[x]: MUST Package requires other packages for directories it uses.
[x]: MUST Package uses nothing in %doc for runtime.
[x]: MUST Package is not known to require ExcludeArch.
[x]: MUST Permissions on files are set properly.
[x]: MUST Package does not contain duplicates in %files.
[x]: MUST Spec file lacks Packager, Vendor, PreReq tags.
[x]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
     Note: rm -rf would be needed if support for EPEL5 is required
[x]: MUST If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %doc.
[x]: MUST License field in the package spec file matches the actual license.
[x]: MUST License file installed when any subpackage combination is installed.
[x]: MUST Package consistently uses macros (instead of hard-coded directory
     names).
[x]: MUST Package is named according to the Package Naming Guidelines.
[x]: MUST Package does not generate any conflict.
[x]: MUST Package obeys FHS, except libexecdir and /usr/target.
[x]: MUST Package must own all directories that it creates.
[x]: MUST Package does not own files or directories owned by other packages.
[x]: MUST Package installs properly.
[x]: MUST Requires correct, justified where necessary.
[!]: MUST Rpmlint output is silent.

rpmlint hornetq-devel-2.2.13-3.fc18.i686.rpm

hornetq-devel.i686: W: invalid-url URL: http://www.jboss.org/hornetq HTTP Error 403: Forbidden
1 packages and 0 specfiles checked; 0 errors, 1 warnings.


rpmlint hornetq-2.2.13-3.fc18.i686.rpm

hornetq.i686: W: spelling-error %description -l en_US multi -> mulch, mufti
hornetq.i686: W: spelling-error %description -l en_US embeddable -> embedded
hornetq.i686: W: invalid-url URL: http://www.jboss.org/hornetq HTTP Error 403: Forbidden
hornetq.i686: W: no-manual-page-for-binary hornetq-disktest
1 packages and 0 specfiles checked; 0 errors, 4 warnings.


rpmlint hornetq-2.2.13-3.fc18.src.rpm

hornetq.src: W: spelling-error %description -l en_US multi -> mulch, mufti
hornetq.src: W: spelling-error %description -l en_US embeddable -> embedded
hornetq.src: W: invalid-url URL: http://www.jboss.org/hornetq HTTP Error 403: Forbidden
hornetq.src: W: invalid-url Source0: hornetq-2.2.13-CLEAN.tar.xz
1 packages and 0 specfiles checked; 0 errors, 4 warnings.


rpmlint hornetq-javadoc-2.2.13-3.fc18.i686.rpm

hornetq-javadoc.i686: W: spelling-error Summary(en_US) Javadocs -> Java docs, Java-docs, Avocados
hornetq-javadoc.i686: W: invalid-url URL: http://www.jboss.org/hornetq HTTP Error 403: Forbidden
1 packages and 0 specfiles checked; 0 errors, 2 warnings.


rpmlint hornetq-debuginfo-2.2.13-3.fc18.i686.rpm

hornetq-debuginfo.i686: W: invalid-url URL: http://www.jboss.org/hornetq HTTP Error 403: Forbidden
1 packages and 0 specfiles checked; 0 errors, 1 warnings.


[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
Package has no sources or they are generated by developer
==> Diff is clean
[x]: MUST Spec file is legible and written in American English.
[x]: MUST Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: MUST File names are valid UTF-8.
[x]: MUST Useful -debuginfo package or justification otherwise.
[x]: SHOULD Reviewer should test that the package builds in mock.
[x]: SHOULD Dist tag is present.
[!]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
==> Do you really need Requires: libaoi-devel on the -devel package?
[x]: SHOULD Package functions as described.
[!]: SHOULD Latest version is packaged.
==> It isn't, but with good justification
[x]: SHOULD Package does not include license text files separate from
     upstream.
[x]: SHOULD Patches link to upstream bugs/comments/lists or are otherwise
     justified.
==> I can live with the file names, but see below
[x]: SHOULD Scriptlets must be sane, if used.
[!]: SHOULD SourceX / PatchY prefixed with %{name}.
     Note: Source0: hornetq-%{version}-CLEAN.tar.xz
     (hornetq-%{version}-CLEAN.tar.xz) Patch0: 0001-Removed-maven-buildmagic-
     thirdparty-plugin-dependenc.patch (0001-Removed-maven-buildmagic-
     thirdparty-plugin-dependenc.patch) Patch1: 0002-Removed-spring-
     dependency.patch (0002-Removed-spring-dependency.patch) Patch2: 0003-gui-
     aid-changes.patch (0003-gui-aid-changes.patch) Patch3: 0004-JDK7-fix-for-
     FileChannel-constructor.patch (0004-JDK7-fix-for-FileChannel-
     constructor.patch) Patch4: 0005-Libraries-paths.patch (0005-Libraries-
     paths.patch) Patch5: 0006-Make-creation-of-pom-files-easier.patch (0006
     -Make-creation-of-pom-files-easier.patch) Patch6: 0007-Add-jdepend-
     dependency-to-run-javadoc-creation.patch (0007-Add-jdepend-dependency-to-
     run-javadoc-creation.patch) Patch7: 0008-Native-build-fixes.patch (0008
     -Native-build-fixes.patch)
[x]: SHOULD SourceX is a working URL.
[x]: SHOULD Packages should try to preserve timestamps of original installed
     files.
[x]: SHOULD Spec use %global instead of %define.


==== Java ====
[x]: MUST If source tarball includes bundled jar/class files these need to be
     removed prior to building
[x]: MUST Packages have proper BuildRequires/Requires on jpackage-utils
[x]: MUST Fully versioned dependency in subpackages, if present.
[x]: MUST Javadoc documentation files are generated and included in -javadoc
     subpackage
[x]: MUST Javadoc subpackages have Requires: jpackage-utils
[x]: MUST Javadocs are placed in %{_javadocdir}/%{name} (no -%{version}
     symlink)
[ ]: SHOULD Package has BuildArch: noarch (if possible)
[x]: SHOULD Package uses upstream build method (ant/maven/etc.)


==== Maven ====
[x]: MUST Pom files have correct add_maven_depmap call
     Note: Some add_maven_depmap calls found. Please check if they are correct
[x]: MUST Old add_to_maven_depmap macro is not being used
[x]: MUST Packages DOES NOT have Requires(post) and Requires(postun) on
     jpackage-utils for %update_maven_depmap macro
[x]: MUST If package contains pom.xml files install it (including depmaps)
     even when building with ant
[x]: MUST Package DOES NOT use %update_maven_depmap in %post/%postun
[x]: MUST Packages use %{_mavenpomdir} instead of %{_datadir}/maven2/poms

Generated by fedora-review 0.1.3
External plugins:

Comment 11 Marek Goldmann 2012-05-24 08:20:35 UTC
Thanks for review!

I fixed the two first issues, but I'm still using the patches naming scheme (generated by git format-patch command), because it makes the order clear, plus - this is a SHOULD, not MUST. If this doesn't make sense for you, let's discuss it :)

Changes:

- Removed unnecessary Requires

Spec URL:
http://goldmann.fedorapeople.org/package_review/hornetq/2.2.13-4/hornetq.spec
SRPM URL:
http://goldmann.fedorapeople.org/package_review/hornetq/2.2.13-4/hornetq-2.2.13-4.fc17.src.rpm

http://koji.fedoraproject.org/koji/taskinfo?taskID=4097392

Comment 12 Mary Ellen Foster 2012-05-25 10:14:47 UTC
Looks good to me now. I can live with the patch names (would be nice if git format-patch could prepend a string to the file names)

APPROVED

(oops, did the wrong bug before ...)

Comment 13 Marek Goldmann 2012-05-25 10:20:54 UTC
Thanks!

New Package SCM Request
=======================
Package Name:      hornetq
Short Description: High performance messaging system
Owners:            goldmann
Branches:          f17

Comment 14 Michael S. 2012-05-25 12:43:16 UTC
It would also be nice to ask to upstream to generate clean tarball directly, this would likely help others distribution to integrate hornetq.

And for the patches, I assume they come or have been sent upstream ( because that's the main reason to ask for them to be commented as sent upstream ) ?

Also, you seemed to have changed the review flag by error, not sure this will trigger the script for git-process. Mary Ellen, can you set it back ( I could do it myself, but prefer to not steal you the credit of the review )

Comment 15 Gwyn Ciesla 2012-05-25 12:43:55 UTC
Mary Ellen, please set fedora-review to +.  Marek, then re-set fedora-cvs.  Thanks!

Comment 16 Gwyn Ciesla 2012-05-25 13:09:15 UTC
. . .after she sets fedora-review. . .:)

Comment 17 Marek Goldmann 2012-05-25 13:14:14 UTC
Jon, something is wrong with BZ. Marry set the fedora-review flag to + on 14:56 UTC+2, I set the fedpra-cvs flag to ? a minute later. And now it says that the fedora-review flag is set to ? by me, which isn't true.

Comment 18 Gwyn Ciesla 2012-05-25 13:59:24 UTC
Git done (by process-git-requests).

It all looks correct to me now.  If you continue to have BZ issues, file a
Trac with Infrastructure.  I know they've been cleaning up a few things in
the last day or so post-BZ-migration, so you might not see further issues.

Comment 19 Fedora Update System 2012-05-26 10:34:05 UTC
hornetq-2.2.13-4.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/hornetq-2.2.13-4.fc17

Comment 20 Fedora Update System 2012-05-26 22:22:20 UTC
hornetq-2.2.13-4.fc17 has been pushed to the Fedora 17 testing repository.

Comment 21 Fedora Update System 2012-06-05 23:07:05 UTC
hornetq-2.2.13-4.fc17 has been pushed to the Fedora 17 stable repository.