Bug 708670 - Review Request: hawtjni - Code generator that produces the JNI code
Summary: Review Request: hawtjni - Code generator that produces the JNI code
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Stanislav Ochotnicky
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 708645 708669
Blocks: 708836
TreeView+ depends on / blocked
 
Reported: 2011-05-28 19:01 UTC by Marek Goldmann
Modified: 2011-06-30 07:37 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2011-06-30 07:37:50 UTC
Type: ---
Embargoed:
sochotni: fedora-review+
petersen: fedora-cvs+


Attachments (Terms of Use)

Description Marek Goldmann 2011-05-28 19:01:15 UTC
Spec URL: http://goldmann.fedorapeople.org/package_review/hawtjni/1/hawtjni.spec
SRPM URL: http://goldmann.fedorapeople.org/package_review/hawtjni/1/hawtjni-1.1-1.fc15.src.rpm
Description:

HawtJNI is a code generator that produces the JNI code needed to
implement java native methods. It is based on the jnigen code generator
that is part of the SWT Tools project which is used to generate all the
JNI code which powers the eclipse platform.

Comment 1 Marek Goldmann 2011-05-29 17:44:22 UTC
Updated spec and srpm files to include maven-hawtjni-plugin:

Spec URL:
http://goldmann.fedorapeople.org/package_review/hawtjni/2/hawtjni.spec
SRPM URL:
http://goldmann.fedorapeople.org/package_review/hawtjni/2/hawtjni-1.1-2.fc15.src.rpm

Comment 2 Stanislav Ochotnicky 2011-05-30 09:51:00 UTC
Gonna review this one

Comment 3 Stanislav Ochotnicky 2011-05-30 11:28:03 UTC
Package Review
==============

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

=== REQUIRED ITEMS ===
[!]  Rpmlint output:
hawtjni.noarch: W: summary-ended-with-dot C Code generator that produces the JNI code needed to implement java native methods.
hawtjni.noarch: E: summary-too-long C Code generator that produces the JNI code needed to implement java native methods.
hawtjni.noarch: W: spelling-error %description -l en_US jnigen -> Nigerien
hawtjni.noarch: W: non-conffile-in-etc /etc/maven/fragments/hawtjni
hawtjni.src: W: summary-ended-with-dot C Code generator that produces the JNI code needed to implement java native methods.
hawtjni.src: E: summary-too-long C Code generator that produces the JNI code needed to implement java native methods.
hawtjni.src: W: spelling-error %description -l en_US jnigen -> Nigerien
hawtjni.src: W: invalid-url Source0: hawtjni-1.1.tar.gz
hawtjni-javadoc.noarch: W: spelling-error Summary(en_US) Javadocs -> Java docs, Java-docs, Avocados
3 packages and 0 specfiles checked; 2 errors, 7 warnings.

Fixing the summary is needed :-)

[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].
[!]  License field in the package spec file matches the actual license.
License type: ASL 2.0 and EPL

There is actually BSD file inside (stdint.h). Correct license for the package is most probably "ASL 2.0 and EPL 1.0 and BSD". It would be good to let upstream know that their licensing situation is not clear from their licensing file. It's usually good idea to put such information into readme or separate file listing all files with different licensing from the main one.

[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.
[x]  All independent sub-packages have license of their own

javadoc subpackage needs included license file

[x]  Spec file is legible and written in American English.
[!]  Sources used to build the package matches the upstream source, as provided in the spec URL.
MD5SUM this package    : d3c43b608bfe48b313e34b747983d1ae
MD5SUM upstream package: b437a1b8d84c5755bfd2b12b7dacde90

Your instructions to create tarball are not exactly incorrect, but they change the md5sum each time archive is created. I'd suggest using lzma (xz) compression instead of gzip. It doesn't add timestamps into tarball so it won't change md5sum and it compresses better. If you need to support EPEL 5 with this, then you can use bzip2 to prevent md5sum changes.

[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
[x]  Javadoc subpackages have Require: jpackage-utils
[x]  Package uses %global not %define
[x]  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.
[x]  Jar files are installed to %{_javadir}/%{name}.jar (see [6] for details)
[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 package uses custom depmap "-Dmaven2.jpp.depmap.file=*" explain why it's needed in a comment
[x]  Package uses %update_maven_depmap in %post/%postun
[x]  Packages have Requires(post) and Requires(postun) on jpackage-utils (for %update_maven_depmap macro)

=== 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)
[x]  Latest version is packaged.
[x]  Reviewer should test that the package builds in mock.
Tested on: fedora-rawhide-x86_64


=== Issues ===
1. summary
2. license clarification/fix
3. tarball generation md5sum
4. It would be nicer to split maven plugin into separate subpackage. That would allow to install core files without pulling in maven and some other deps.


[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 4 Marek Goldmann 2011-05-30 13:16:45 UTC
Thanks for taking this review!

Updated files with your comments applied:

Spec URL:
http://goldmann.fedorapeople.org/package_review/hawtjni/3/hawtjni.spec
SRPM URL:
http://goldmann.fedorapeople.org/package_review/hawtjni/3/hawtjni-1.1-3.fc15.src.rpm

Comment 5 Stanislav Ochotnicky 2011-05-30 13:56:23 UTC
tarball is now OK (md5sum dc1a98b5cf60e90fb79a33fc003c2af9)

javadoc subpackage should have license file included as well. 

maven plugin subpackage should have separate Group tag (even if it's the same as in this case). 

You now also have this in file section:
%{_mavendepmapfragdir}/

i.e. you own whole subdir, whereas you should only own file inside it i.e.
%{_mavendepmapfragdir}/%{name} (or *)

Otherwise the package looks OK now, so just fix those 3 small issues and you're good to go. In good faith: APPROVED :-)

Comment 6 Marek Goldmann 2011-05-30 14:10:55 UTC
Thank you!

I've applied your comments to this package:

Spec URL:
http://goldmann.fedorapeople.org/package_review/hawtjni/3a/hawtjni.spec
SRPM URL:
http://goldmann.fedorapeople.org/package_review/hawtjni/3a/hawtjni-1.1-3.fc15.src.rpm

New Package SCM Request
=======================
Package Name: hawtjni
Short Description: Code generator that produces the JNI code
Owners: goldmann
Branches: f15
InitialCC: java-sig

Comment 7 Stanislav Ochotnicky 2011-05-30 14:26:34 UTC
Bah, I somehow missed maven-shade-plugin being used to bundle all dependencies inside generator jar. You'll have to remove shade plugin use before proceeding. Removing cvs? and review+ in the meantime. Sorry

Comment 9 Stanislav Ochotnicky 2011-05-30 15:20:52 UTC
Yup, all OK now.

Comment 10 Marek Goldmann 2011-05-30 15:21:49 UTC
Thank you!

Comment 11 Jens Petersen 2011-05-31 07:25:58 UTC
Git done (by process-git-requests).

Comment 12 Alexander Kurtakov 2011-06-30 07:37:50 UTC
Build in rawhide since long ago.
http://koji.fedoraproject.org/koji/buildinfo?buildID=245729

Closing.


Note You need to log in before you can comment on or make changes to this bug.