Bug 607385

Summary: Review Request: felix-osgi-foundation - OSGi Foundation Execution Environment (EE) Classes
Product: [Fedora] Fedora Reporter: Victor G. Vasilyev <victor.vasilyev>
Component: Package ReviewAssignee: Stanislav Ochotnicky <sochotni>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, notting, sochotni
Target Milestone: ---Flags: sochotni: fedora‑review+
tibbs: 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: 2010-07-01 08:32:31 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 607389, 610153    

Description Victor G. Vasilyev 2010-06-23 20:38:48 EDT
Spec URL: http://victorv.fedorapeople.org/files/felix-osgi-foundation.spec
SRPM URL: http://victorv.fedorapeople.org/files/felix-osgi-foundation-1.2.0-1.fc14.src.rpm
Description: OSGi Foundation Execution Environment (EE) Classes.

Note, the NetBeans 6.9 [1] depends on this package.
[1] https://fedoraproject.org/wiki/Features/NetBeans_6.9
Comment 1 Victor G. Vasilyev 2010-06-23 20:51:08 EDT
Successful scratch koji build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=2269177
Comment 2 Stanislav Ochotnicky 2010-06-29 11:03:48 EDT
I'll do the review
Comment 3 Stanislav Ochotnicky 2010-06-29 11:16:42 EDT
Is there any reason why not use maven directly? I was able to build it with mvn-jpp easily on Fedora-13. Other than that I can say that the package is in perfect shape, ready to be approved. So just explain why you are not using maven directly, or better yet start using it :-) and I can do whole official review and approve this.
Comment 4 Victor G. Vasilyev 2010-06-29 16:39:51 EDT
(In reply to comment #3)
> Is there any reason why not use maven directly? 
A reason was to have smooth review. :-) But, if seriously then:

1. I do not see any Fedora's guidelines that explain how to create good packages for the maven projects. Obviously, the section https://fedoraproject.org/wiki/Packaging/Java#maven is not enough for packagers. BTW an example in the section is not a common pattern, because it contains artifacts that are specific for the maven-archiver package.  

2. Use of the maven to build a package for Fedora requires extra work and time. Additionally to finding of all project dependencies a packager should also find and specify required maven plugins. E.g. to find all of required maven plugins for this package I've restarted rpmbuild 7 times. Of course, it is not a big problem for this small project, but not all of projects are small. 

3. A Fedora requirement to use only local resources during building of the packages discounts power of the maven that has got a nature based on principles of the "cloud computing".  Nevertheless, I believe that ALL maven plugins will be packaged for Fedora soon, and the issue will be resolved ;-)

> So just explain why you are not using maven directly, 
> or better yet start using it :-) 
Of course, "Better is better than worse" :-) 
So, I've prepared second revision of the package, and started using maven instead of ant. At least, this approach lets to avoid ALL warnings of the rpmlint tool.

Spec URL: http://victorv.fedorapeople.org/files/felix-osgi-foundation.spec
SRPM URL:
http://victorv.fedorapeople.org/files/felix-osgi-foundation-1.2.0-2.fc14.src.rpm

Successful scratch koji build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=2281273

The rpmlint tool shows 0 errors, 0 warnings for all packages, i.e SRPM and RPMs.
Comment 5 Stanislav Ochotnicky 2010-06-30 05:52:33 EDT
K: rpmlint must be run on every package. The output should be posted in the review.
empty output..no errors, no warnings
OK: The package must be named according to the Package Naming Guidelines .
OK: The spec file name must match the base package %{name}, in the format %{name}.spec unless your package has an exemption.  .
OK: The package must meet the Packaging Guidelines .
OK: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines .
OK: The License field in the package spec file must match the actual license. 
OK: 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 must be included in %doc.
OK: The spec file must be written in American English. 
OK: The spec file for the package MUST be legible. 
OK: The sources used to build the package must match the upstream source, as provided in the spec URL. Reviewers should use md5sum for this task. If no upstream URL can be specified for this package, please see the Source URL Guidelines for how to deal with this.
OK: The package MUST successfully compile and build into binary rpms on at least one primary architecture. 
OK: Packages must NOT bundle copies of system libraries.
OK: A package must own all directories that it creates. If it does not create a directory that it uses, then it should require a package which does create that directory. 
OK: A Fedora package must not list a file more than once in the spec file's %files listings. 
OK: Permissions on files must be set properly. Executables should be set with executable permissions, for example. Every %files section must include a %defattr(...) line. 
OK: Each package must consistently use macros. 
OK: The package must contain code, or permissable content. 
OK: Large documentation files must go in a -doc subpackage. (The definition of large is left up to the packager's best judgement, but is not restricted to size. Large can refer to either size or quantity). 
OK: If a package includes something as %doc, it must not affect the runtime of the application. To summarize: If it is in %doc, the program must run properly if it is not present. 
OK: Packages must not own files or directories already owned by other packages. The rule of thumb here is that the first package to be installed should own the files or directories that other packages may rely upon. This means, for example, that no package in Fedora should ever share ownership with any of the files or directories owned by the filesystem or man package. If you feel that you have a good reason to own a file or directory that another package owns, then please present that at package review time. 
OK: All filenames in rpm packages must be valid UTF-8. 

Other:
 * javadoc subpackage should have requires on jpackage-utils (sorry I
   didn't notice before)
 * why "Prevent brp-java-repack-jars from being run." ?
 * there is %{_mavenpomdir} macro you can use instead of %{_datadir}/maven2/poms

You are correct, documentation on proper maven packages should be
improved, no argument there. Why I asked for maven build? I assumed
that's what upstream is using, and it's always best to use the same
build system as upstream unless there is good reason not to.

Package is in really good shape and of those three problems only
jpackage-utils requires is really important. Fix it before you commit
to the repository please. I would also like to know why you want to
prevent brp-java-repack-jars from running (maybe I'll learn something
new this way :-) ).

All in all package is APPROVED.
Comment 6 Victor G. Vasilyev 2010-06-30 09:03:50 EDT
(In reply to comment #5)
> Other:
>  * javadoc subpackage should have requires on jpackage-utils (sorry I
>    didn't notice before)
Fixed. It is an example why review is need. I know about that, but I've not noticed it too.

>  * why "Prevent brp-java-repack-jars from being run." ?
AFAIK the brp-java-repack-jars is only needed for the arch-specific Java packages only. [1]
I think, it should be usual practice for all pure-Java non-JNI packages until current default behaviour of the rpmbuild is changed. 

Because, it lets to :
* avoid problems like [2];
* reduce build time;
* be more closer to the original projects and expectations of their authors. E.g. changing of the archiving options can have impact on performance of the Java application/library.

[1] http://lists.fedoraproject.org/pipermail/java-devel/2008-September/003113.html
[2] https://bugzilla.redhat.com/show_bug.cgi?id=465664

>  * there is %{_mavenpomdir} macro you can use instead of
> %{_datadir}/maven2/poms
Fixed.
 
> You are correct, documentation on proper maven packages should be
> improved, no argument there. Why I asked for maven build? I assumed
> that's what upstream is using, and it's always best to use the same
> build system as upstream unless there is good reason not to.
I absolutely agree with all :-)

> All in all package is APPROVED.    
Third revision of the package with the fixes mentioned above is prepared.

Spec URL: http://victorv.fedorapeople.org/files/felix-osgi-foundation.spec
SRPM URL:
http://victorv.fedorapeople.org/files/felix-osgi-foundation-1.2.0-3.fc14.src.rpm
Comment 7 Victor G. Vasilyev 2010-06-30 09:12:26 EDT
New Package CVS Request
=======================
Package Name: felix-osgi-foundation
Short Description: OSGi Foundation Execution Environment (EE) Classes
Owners: victorv
Branches: 
InitialCC:
Comment 8 Stanislav Ochotnicky 2010-06-30 09:24:15 EDT
(In reply to comment #6)
> >  * why "Prevent brp-java-repack-jars from being run." ?
> AFAIK the brp-java-repack-jars is only needed for the arch-specific Java
> packages only. [1]
> I think, it should be usual practice for all pure-Java non-JNI packages until
> current default behaviour of the rpmbuild is changed. 
> 
> Because, it lets to :
> * avoid problems like [2];
> * reduce build time;
> * be more closer to the original projects and expectations of their authors.
> E.g. changing of the archiving options can have impact on performance of the
> Java application/library.
> 
> [1]
> http://lists.fedoraproject.org/pipermail/java-devel/2008-September/003113.html
> [2] https://bugzilla.redhat.com/show_bug.cgi?id=465664
> 

Thanks for explaining...like I predicted: I learned something new today :-)
Comment 9 Jason Tibbitts 2010-07-01 00:55:20 EDT
CVS done (by process-cvs-requests.py).
Comment 10 Victor G. Vasilyev 2010-07-01 08:31:45 EDT
Koji build: http://koji.fedoraproject.org/koji/taskinfo?taskID=2286131