Bug 561456

Summary: Review Request: jnr-x86asm - Pure-java port of asmjit
Product: [Fedora] Fedora Reporter: Mo Morsi <mmorsi>
Component: Package ReviewAssignee: Stanislav Ochotnicky <sochotni>
Status: CLOSED ERRATA 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+
tcallawa: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: jnr-x86asm-0.1-2.fc13 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-07-23 02:24:11 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:
Bug Depends On:    
Bug Blocks: 561462, 561484    

Description Mo Morsi 2010-02-03 17:22:47 UTC
Spec URL: http://mo.morsi.org/files/jruby/jnr-x86asm.spec
SRPM URL: http://mo.morsi.org/files/jruby/jnr-x86asm-0.1-1.fc12.src.rpm
Description: 
Pure-java port of asmjit (http://code.google.com/p/asmjit/)

Required by JRuby.

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

$ rpmlint rpmbuild/RPMS/noarch/jnr-x86asm-0.1-1.fc12.noarch.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.

$ rpmlint rpmbuild/RPMS/noarch/jnr-x86asm-javadoc-0.1-1.fc12.noarch.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.

$ rpmlint rpmbuild/SRPMS/jnr-x86asm-0.1-1.fc12.src.rpm 
1 packages and 0 specfiles checked; 0 errors, 0 warnings.

Comment 1 Stanislav Ochotnicky 2010-05-20 13:29:15 UTC
I can do the review.

Comment 2 Stanislav Ochotnicky 2010-05-20 14:18:17 UTC
NOTOK: rpmlint must be run on every package. The output should be posted in the review.
NOTOK: The package must be named according to the Package Naming 
NOTOK: The sources used to build the package must match the upstream source, as provided in the spec URL.

Output:
jnr-x86asm.src: W: spelling-error Summary(en_US) asmjit -> Asmara, Asquith, fajitas
jnr-x86asm.src: W: spelling-error %description -l en_US asmjit -> Asmara, Asquith, fajitas
jnr-x86asm.src: W: invalid-url Source0: jnr-x86asm-0.1.tgz
jnr-x86asm.noarch: W: spelling-error Summary(en_US) asmjit -> Asmara, Asquith, fajitas
jnr-x86asm.noarch: W: spelling-error %description -l en_US asmjit -> Asmara, Asquith, fajitas
jnr-x86asm-javadoc.noarch: W: spelling-error Summary(en_US) asm -> as, am, mas
jnr-x86asm-javadoc.noarch: W: spelling-error %description -l en_US asm -> as, am, mas
3 packages and 0 specfiles checked; 0 errors, 7 warnings.

While spec file explains how to create Source0 it fails to provide
reliable way to verify no changes happened between Source0 was taken
and building of RPM. You need to specify git hash (part of it at
least) of commit that should be checked out after cloning. Once some
version is released by developer, it would be ideal if git tag hash was
used instead.

This also applies to naming of package. This is most certainly a
pre-relase so naming convetions are these:
https://fedoraproject.org/wiki/Packaging:NamingGuidelines#PreReleasePackages


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 .
NOTOK: The License field in the package spec file must match the actual license. 

License of package is obviously LGPLv3 not MIT

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.

License is included,  but it would be good to include COPYING* files
too especially since COPYING file has the text of license itself.

OK: The spec file must be written in American English. 
OK: The spec file for the package MUST be legible. 
OK: The package MUST successfully compile and build into binary rpms on at least one primary architecture. 
OK: All build dependencies must be listed in BuildRequires, except for any that are listed in the exceptions section of the Packaging Guidelines ; inclusion of those as BuildRequires is optional. Apply common sense.
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. 
NOTOK: Each package must consistently use macros.
you mix $RPM_BUILD_ROOT and %{buildroot}. Pick one and stick to it

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: 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. 


Please fix those naming/Source0 URL/license/macro problems, so that I can approve this package.

Comment 3 Stanislav Ochotnicky 2010-05-20 14:23:36 UTC
Also javadoc subpackage should require jpackage-utils

Comment 4 Mo Morsi 2010-05-24 21:41:05 UTC
(In reply to comment #2)
> NOTOK: rpmlint must be run on every package. The output should be posted in the
> review.
> NOTOK: The package must be named according to the Package Naming 
> NOTOK: The sources used to build the package must match the upstream source, as
> provided in the spec URL.
> 
> Output:
> jnr-x86asm.src: W: spelling-error Summary(en_US) asmjit -> Asmara, Asquith,
> fajitas
> jnr-x86asm.src: W: spelling-error %description -l en_US asmjit -> Asmara,
> Asquith, fajitas
> jnr-x86asm.src: W: invalid-url Source0: jnr-x86asm-0.1.tgz
> jnr-x86asm.noarch: W: spelling-error Summary(en_US) asmjit -> Asmara, Asquith,
> fajitas
> jnr-x86asm.noarch: W: spelling-error %description -l en_US asmjit -> Asmara,
> Asquith, fajitas
> jnr-x86asm-javadoc.noarch: W: spelling-error Summary(en_US) asm -> as, am, mas
> jnr-x86asm-javadoc.noarch: W: spelling-error %description -l en_US asm -> as,
> am, mas
> 3 packages and 0 specfiles checked; 0 errors, 7 warnings.

I'm ignoring all the spelling errors as it's complaining about 'asmjit' which is a legit part of the package summary / description. (Also I'm not seeing those warnings locally, running rpmlint against the SRPM doesn't yield those spelling errors)


> 
> While spec file explains how to create Source0 it fails to provide
> reliable way to verify no changes happened between Source0 was taken
> and building of RPM. You need to specify git hash (part of it at
> least) of commit that should be checked out after cloning. Once some
> version is released by developer, it would be ideal if git tag hash was
> used instead.
> 

FIXED. It seems the upstream author released a project tarball not long after I uploaded this package, so now I'm just using that.


> This also applies to naming of package. This is most certainly a
> pre-relase so naming convetions are these:
> https://fedoraproject.org/wiki/Packaging:NamingGuidelines#PreReleasePackages
> 

This is not a pre-release. This is the 0.1 release. According to that wiki link a prerelease would be something like 0.2alpha or what not.



> 
> 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 .
> NOTOK: The License field in the package spec file must match the actual
> license. 
> 
> License of package is obviously LGPLv3 not MIT

FIXED.

> 
> 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.
> 
> License is included,  but it would be good to include COPYING* files
> too especially since COPYING file has the text of license itself.

DONE


> 
> OK: The spec file must be written in American English. 
> OK: The spec file for the package MUST be legible. 
> OK: The package MUST successfully compile and build into binary rpms on at
> least one primary architecture. 
> OK: All build dependencies must be listed in BuildRequires, except for any that
> are listed in the exceptions section of the Packaging Guidelines ; inclusion of
> those as BuildRequires is optional. Apply common sense.
> 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. 
> NOTOK: Each package must consistently use macros.
> you mix $RPM_BUILD_ROOT and %{buildroot}. Pick one and stick to it
> 

FIXED

> 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: 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. 
> 
> 
> Please fix those naming/Source0 URL/license/macro problems, so that I can
> approve this package.    

All are fixed save the 'naming' issue, which I'm not sure as to what you are referring to. I also included the jpackage-utils dependency for the javadoc.

New SPEC / SRPM:
Spec URL: http://mo.morsi.org/files/jruby/jnr-x86asm.spec
SRPM URL: http://mo.morsi.org/files/jruby/jnr-x86asm-0.1-2.fc11.src.rpm

Comment 5 Stanislav Ochotnicky 2010-05-25 11:24:31 UTC
(In reply to comment #4)
> > While spec file explains how to create Source0 it fails to provide
> > reliable way to verify no changes happened between Source0 was taken
> > and building of RPM. You need to specify git hash (part of it at
> > least) of commit that should be checked out after cloning. Once some
> > version is released by developer, it would be ideal if git tag hash was
> > used instead.
> > 
> 
> FIXED. It seems the upstream author released a project tarball not long after I
> uploaded this package, so now I'm just using that.
> 
> 
> > This also applies to naming of package. This is most certainly a
> > pre-relase so naming convetions are these:
> > https://fedoraproject.org/wiki/Packaging:NamingGuidelines#PreReleasePackages
> > 
> 
> This is not a pre-release. This is the 0.1 release. According to that wiki link
> a prerelease would be something like 0.2alpha or what not.

What I meant was that your original spec file had instructions on how to create a tar file with simple git clone && tar cjf . This is all nice, but git is a moving target. It could be different every time you do a new clone. By changing to use tarball created by developer we can now say this is release 0.1. But there was no release 0.1 before, so your spec file was pre-release. There was a tag for version 0.1, but your spec file didn't use it. Anyway...this has been fixed now so let's move on :-)

Spelling warnings were not just for srpm but for rpm packages as well. If you notice there are jnr-x86asm.noarch and jnr-x86asm-javadoc.noarch rpmlint messages. But those were false positives anyway just like you said.

With changes you made this package is APPROVED.

Comment 6 Stanislav Ochotnicky 2010-07-12 12:16:52 UTC
I suggest you ask for CVS now...

Comment 7 Mo Morsi 2010-07-12 17:20:09 UTC
Sorry for the delay.

New Package CVS Request
=======================
Package Name: jnr-x86asm
Short Description: Pure-java port of asmjit (http://code.google.com/p/asmjit/)
Owners: mmorsi
Branches: F-13
InitialCC:

Comment 8 Tom "spot" Callaway 2010-07-13 15:39:42 UTC
CVS done (by process-cvs-requests.py).

Comment 9 Fedora Update System 2010-07-13 19:01:06 UTC
jnr-x86asm-0.1-2.fc13 has been submitted as an update for Fedora 13.
http://admin.fedoraproject.org/updates/jnr-x86asm-0.1-2.fc13

Comment 10 Fedora Update System 2010-07-14 23:01:08 UTC
jnr-x86asm-0.1-2.fc13 has been pushed to the Fedora 13 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update jnr-x86asm'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/jnr-x86asm-0.1-2.fc13

Comment 11 Fedora Update System 2010-07-23 02:24:05 UTC
jnr-x86asm-0.1-2.fc13 has been pushed to the Fedora 13 stable repository.  If problems still persist, please make note of it in this bug report.