Bug 665544

Summary: Review Request: ini4j - Java API for handling files in Window .ini format
Product: [Fedora] Fedora Reporter: Omair Majid <omajid>
Component: Package ReviewAssignee: Stanislav Ochotnicky <sochotni>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: akurtako, fedora-package-review, notting, sochotni
Target Milestone: ---Flags: sochotni: fedora-review+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-01-19 14:44:03 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 Omair Majid 2010-12-24 15:48:50 UTC
Spec URL: http://omajid.fedorapeople.org/ini4j/ini4j.spec
SRPM URL: http://omajid.fedorapeople.org/ini4j/ini4j-0.4.1-3.fc15.src.rpm
Description: ini4j is a simple Java API for handling configuration files in Windows .ini format. Additionally, the library includes Java preferences API implementation based on the .ini file

The ini4j package was orphaned a while back, and the last update to the spec file was more than a year ago. I have taken over the package. According to the OrphanedPackages[1] page, I need a package review before I can update the package.

I have tested this package by installing it on F13. Netbeans, which is the only package that requires ini4j, works just fine.

[1]http://fedoraproject.org/wiki/PackageMaintainers/OrphanedPackages

Comment 1 Alexander Kurtakov 2011-01-11 11:35:33 UTC
Latest version 0.5.1 is out since long time is there a reason to not update it?

Comment 2 Omair Majid 2011-01-11 13:48:50 UTC
There are (incompatible) API changes between 0.4.1 and 0.5.1. The only package that uses ini4j is netbeans. Netbeans 6.9 (f14+rawhide) still depends on 0.4.1. Netbeans 7.0 (which is currently in beta) will require 0.5.1.

Comment 3 Stanislav Ochotnicky 2011-01-12 11:13:37 UTC
OK. I'll do the review

Comment 4 Stanislav Ochotnicky 2011-01-12 13:22:08 UTC
Package Review
==============

Key:
- = N/A
x = Check
! = Problem
? = Not evaluated

=== REQUIRED ITEMS ===
[!]  Rpmlint output:
ini4j.noarch: W: spelling-error Summary(en_US) ini -> uni, in, ii
ini4j.noarch: W: spelling-error %description -l en_US ini -> uni, in, ii
ini4j.noarch: W: non-conffile-in-etc /etc/maven/fragments/ini4j
ini4j.src: W: spelling-error Summary(en_US) ini -> uni, in, ii
ini4j.src: W: spelling-error %description -l en_US ini -> uni, in, ii
no problem

ini4j-javadoc.noarch: W: spelling-error Summary(en_US) doccumentation -> documentation, instrumentation, argumentation
"cc"->"c"
3 packages and 0 specfiles checked; 0 errors, 6 warnings.
[x]  Package is named according to the Package Naming Guidelines[1].
[x]  Spec file name must match the base package name, in the format %{name}.spec.
[x]  Package meets the Packaging Guidelines[2].
[x]  Package successfully compiles and builds into binary rpms.
[x]  Buildroot definition is not present
[x]  Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines[3,4].
[x]  License field in the package spec file matches the actual license.
License type: ASL 2.0
[x]  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.
[-]  All independent sub-packages have license of their own
[x]  Spec file is legible and written in American English.
[x]  Sources used to build the package matches the upstream source, as provided in the spec URL.
MD5SUM : 73f7c4a5f010d5b968425b8415132eb1
[x]  All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines[5].
[x]  Package must own all directories that it creates.
[x]  Package requires other packages for directories it uses.
[x]  Package does not contain duplicates in %files.
[x]  Permissions on files are set properly.
[x]  Package does NOT have a %clean section which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT). (not needed anymore)
[x]  Package consistently uses macros (no %{buildroot} and $RPM_BUILD_ROOT mixing)
[x]  Package contains code, or permissable content.
[x]  Fully versioned dependency in subpackages, if present.
[-]  Package contains a properly installed %{name}.desktop file if it is a GUI application.
[x]  Package does not own files or directories owned by other packages.
[x]  Javadoc documentation files are generated and included in -javadoc subpackage
[x]  Javadocs are placed in %{_javadocdir}/%{name} (no -%{version} symlinks)
[x]  Packages have proper BuildRequires/Requires on jpackage-utils
Although javadoc subpackage has Requires both on main package and jpackage-utils. If you don't have strong reason to depend on main package it might be good idea to drop that dependency. If you decide to keep main package Requires then jpackage-utils is not necessary since main package already requires it.

[x]  Javadoc subpackages have Require: jpackage-utils
[-]  Package uses %global not %define
[-]  If package uses tarball from VCS include comment how to re-create that tarball (svn export URL, git clone URL, ...)
[-]  If source tarball includes bundled jar/class files these need to be removed prior to building
[x]  All filenames in rpm packages must be valid UTF-8.
[!]  Jar files are installed to %{_javadir}/%{name}.jar (see [6] for details)
Please no -%{version}.jar files. Current guidelines have versionless jars.
[x]  If package contains pom.xml files install it (including depmaps) even when building with ant
[x]  pom files has correct add_to_maven_depmap call which resolves to the pom file (use "JPP." and "JPP-" correctly)

=== Maven ===
[x]  Use %{_mavenpomdir} macro for placing pom files instead of %{_datadir}/maven2/poms
[!]  If package uses "-Dmaven.test.skip=true" explain why it was needed in a comment
If it's possible prefer to use -Dmaven.test.failure.ignore=true instead of test.skip. This is useful if tests compile but fail to run correctly. We can still see the output in the build.log. In both cases please explain why test.skip was used so that it can be removed in the future when the reason is gone.

[!]  If package uses custom depmap "-Dmaven2.jpp.depmap.file=*" explain why it's needed in a comment
Removing activation is OK, but please file a bug for plexus-mail-sender to provide correct depmap. I'll work on fixing it in the meantime :-)

[x]  Package uses %update_maven_depmap in %post/%postun
[!]  Packages have Requires(post) and Requires(postun) on jpackage-utils (for %update_maven_depmap macro)
You are missing proper requires post/postun on jpackage-utils

=== Other suggestions ===
[x]  If possible use upstream build method (maven/ant/javac)
[x]  Avoid having BuildRequires on exact NVR unless necessary
[x]  Package has BuildArch: noarch (if possible)
[-]  Latest version is packaged.
already explained
[x]  Reviewer should test that the package builds in mock.
Tested on: rawhide-x86_64


=== Issues ===
1. Doccumentation
2. Requires on main package in javadoc subpackage
3. Versionless jar
4. Use -Dmaven.test.failure.ignore and add comment
5. File bug against plexus-mail-sender
6. Requires for jpackage-utils in post/postun


[1] https://fedoraproject.org/wiki/Packaging:NamingGuidelines
[2] https://fedoraproject.org/wiki/Packaging:Guidelines
[3] https://fedoraproject.org/wiki/Packaging:LicensingGuidelines
[4] https://fedoraproject.org/wiki/Licensing:Main
[5] https://fedoraproject.org/wiki/Packaging/Guidelines#Exceptions_2
[6] https://fedoraproject.org/wiki/Packaging:Java#Filenames

Comment 5 Omair Majid 2011-01-13 19:36:07 UTC
Thanks for the review! Updated files:

Spec URL: http://omajid.fedorapeople.org/ini4j/ini4j.spec
SRPM URL: http://omajid.fedorapeople.org/ini4j/ini4j-0.4.1-3.fc15.src.rpm

(In reply to comment #4)
> ini4j-javadoc.noarch: W: spelling-error Summary(en_US) doccumentation ->
> documentation, instrumentation, argumentation
> "cc"->"c"

Fixed.

> [x]  Packages have proper BuildRequires/Requires on jpackage-utils
> Although javadoc subpackage has Requires both on main package and
> jpackage-utils. If you don't have strong reason to depend on main package it
> might be good idea to drop that dependency. If you decide to keep main package
> Requires then jpackage-utils is not necessary since main package already
> requires it.
> 

The updated spec file removes the dependency on main package. Does the -javadoc subpackage also need a copy of the license then?

> [!]  Jar files are installed to %{_javadir}/%{name}.jar (see [6] for details)
> Please no -%{version}.jar files. Current guidelines have versionless jars.

Fixed.

> [!]  If package uses "-Dmaven.test.skip=true" explain why it was needed in a
> comment
> If it's possible prefer to use -Dmaven.test.failure.ignore=true instead of
> test.skip. This is useful if tests compile but fail to run correctly. We can
> still see the output in the build.log. In both cases please explain why
> test.skip was used so that it can be removed in the future when the reason is
> gone.
> 

The tests fail to compile since they require EasyMock Class Extension 2.3 (http://www.easymock.org/EasyMock2_3_ClassExtension_Documentation.html)

> [!]  If package uses custom depmap "-Dmaven2.jpp.depmap.file=*" explain why
> it's needed in a comment
> Removing activation is OK, but please file a bug for plexus-mail-sender to
> provide correct depmap. I'll work on fixing it in the meantime :-)

Filed as bug 669495.

> [!]  Packages have Requires(post) and Requires(postun) on jpackage-utils (for
> %update_maven_depmap macro)
> You are missing proper requires post/postun on jpackage-utils

Fixed.

Thanks again for the review.

Comment 6 Stanislav Ochotnicky 2011-01-14 08:58:00 UTC
(In reply to comment #5)
> The updated spec file removes the dependency on main package. Does the -javadoc
> subpackage also need a copy of the license then?

Ah, yes. Sorry I didn't mention this in the review. You need to include license in the javadoc subpackage now.

I now noticed you include src/main/java/org/ini4j/package.html. We don't normally include this file in the doc as people who want docs install javadoc subpackages.

> > [!]  If package uses custom depmap "-Dmaven2.jpp.depmap.file=*" explain why
> > it's needed in a comment
> > Removing activation is OK, but please file a bug for plexus-mail-sender to
> > provide correct depmap. I'll work on fixing it in the meantime :-)
> 
> Filed as bug 669495.

Thank you.

Comment 7 Omair Majid 2011-01-17 16:25:49 UTC
Spec URL: http://omajid.fedorapeople.org/ini4j/ini4j.spec
SRPM URL: http://omajid.fedorapeople.org/ini4j/ini4j-0.4.1-3.fc15.src.rpm

(In reply to comment #6)
> (In reply to comment #5)
> > The updated spec file removes the dependency on main package. Does the -javadoc
> > subpackage also need a copy of the license then?
> 
> Ah, yes. Sorry I didn't mention this in the review. You need to include license
> in the javadoc subpackage now.
> 
> I now noticed you include src/main/java/org/ini4j/package.html. We don't
> normally include this file in the doc as people who want docs install javadoc
> subpackages.
> 

Fixed. Thanks!

Comment 8 Stanislav Ochotnicky 2011-01-17 16:35:18 UTC
Package is good now. APPROVED

Comment 9 Alexander Kurtakov 2011-01-19 12:48:24 UTC
As this is practically a merge review someone should close it. Omair please do so.

Comment 10 Omair Majid 2011-01-19 14:44:03 UTC
Closing as requested.