Bug 225940 - Merge Review: javacc
Summary: Merge Review: javacc
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 Package Reviews List
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-01-31 19:11 UTC by Nobody's working on this, feel free to take it
Modified: 2010-07-13 13:23 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-07-13 13:23:58 UTC
Type: ---
Embargoed:
sochotni: fedora-review+


Attachments (Terms of Use)

Description Nobody's working on this, feel free to take it 2007-01-31 19:11:46 UTC
Fedora Merge Review: javacc

http://cvs.fedora.redhat.com/viewcvs/devel/javacc/
Initial Owner: mwringe

Comment 1 Stanislav Ochotnicky 2010-05-28 07:51:30 UTC
I will do the review

Comment 2 Stanislav Ochotnicky 2010-05-28 09:20:58 UTC
FIXIT: rpmlint must be run on every package. The output should be posted in the review.
javacc.src: W: strange-permission javacc.sh 0755L
javacc.src: W: strange-permission jjtree 0755L
javacc.src: W: strange-permission jjdoc 0755L
javacc.noarch: W: non-conffile-in-etc /etc/maven/fragments/javacc
javacc-demo.noarch: W: no-documentation
4 packages and 0 specfiles checked; 0 errors, 5 warnings.

Those permissions are easily solved. You first copy those 3 shell
scripts to bin/ and then install them from there. I would suggest
chmodding them to non-executable inside src.rpm and only install them
like this:

install -pD -T -m 755 %{SOURCE1} $RPM_BUILD_ROOT/%{_bindir}/javacc.sh

no need to copy them to bin/ first I believe...
Rest are false positives.

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.

It would be good to use %{version} in Source0 so it will be (a bit) easier to update in case any new releases
appear...

OK(mock): 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: 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.

Thing about installing those script applies of course...

OK: Each package must consistently use macros.

But spec file mixes cp and install. I'd suggest exchanging lines:
mkdir -p $RPM_BUILD_ROOT/%{_mavenpomdir}
cp -p pom.xml $RPM_BUILD_ROOT/%{_mavenpomdir}/JPP-%{name}.pom

with:
install -d -m 755 $RPM_BUILD_ROOT%{_mavenpomdir}
install -pm 644 pom.xml $RPM_BUILD_ROOT/%{_mavenpomdir}/JPP-%{name}.pom

or even better:
install -pD -T -m 644  $RPM_BUILD_ROOT%{_mavenpomdir}/JPP-%{name}.pom

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

But maybe it would be good to rename -manual subpackage to -doc? On the other hand, adding provides/obsoletes is probably more messy now. I'll leave it up to you.

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:
 - you can remove "section free" definition
 - I would suggest moving examples from /usr/share/javacc/examples to /usr/share/doc/javacc/examples

Comment 3 Alexander Kurtakov 2010-06-04 18:29:01 UTC
(In reply to comment #2)
> FIXIT: rpmlint must be run on every package. The output should be posted in the
> review.
> javacc.src: W: strange-permission javacc.sh 0755L
> javacc.src: W: strange-permission jjtree 0755L
> javacc.src: W: strange-permission jjdoc 0755L
> javacc.noarch: W: non-conffile-in-etc /etc/maven/fragments/javacc
> javacc-demo.noarch: W: no-documentation
> 4 packages and 0 specfiles checked; 0 errors, 5 warnings.
> 
> Those permissions are easily solved. You first copy those 3 shell
> scripts to bin/ and then install them from there. I would suggest
> chmodding them to non-executable inside src.rpm and only install them
> like this:
> 
> install -pD -T -m 755 %{SOURCE1} $RPM_BUILD_ROOT/%{_bindir}/javacc.sh
> 
> no need to copy them to bin/ first I believe...
> Rest are false positives.
Fixed.

> 
> 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.
> 
> It would be good to use %{version} in Source0 so it will be (a bit) easier to
> update in case any new releases
> appear...
Fixed.

> 
> OK(mock): 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: 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.
> 
> Thing about installing those script applies of course...
> 
> OK: Each package must consistently use macros.
> 
> But spec file mixes cp and install. I'd suggest exchanging lines:
> mkdir -p $RPM_BUILD_ROOT/%{_mavenpomdir}
> cp -p pom.xml $RPM_BUILD_ROOT/%{_mavenpomdir}/JPP-%{name}.pom
> 
> with:
> install -d -m 755 $RPM_BUILD_ROOT%{_mavenpomdir}
> install -pm 644 pom.xml $RPM_BUILD_ROOT/%{_mavenpomdir}/JPP-%{name}.pom
> 
> or even better:
> install -pD -T -m 644  $RPM_BUILD_ROOT%{_mavenpomdir}/JPP-%{name}.pom
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).
> 
> But maybe it would be good to rename -manual subpackage to -doc? On the other
> hand, adding provides/obsoletes is probably more messy now. I'll leave it up to
> you.
I prefer to keep it as manual.

> 
> 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:
>  - you can remove "section free" definition
Done.

>  - I would suggest moving examples from /usr/share/javacc/examples to
> /usr/share/doc/javacc/examples    
Fixed.

Comment 4 Stanislav Ochotnicky 2010-06-07 09:00:50 UTC
After moving demos to a doc subdirectory rpmlint now complains about line endings. Fix it when you have time. Otherwise the package is good. I'll approve this when those EOLs are fixed.

Comment 5 Alexander Kurtakov 2010-07-13 13:05:40 UTC
Fixed.
http://koji.fedoraproject.org/koji/buildinfo?buildID=183402

Comment 6 Stanislav Ochotnicky 2010-07-13 13:23:58 UTC
Perfect, rpmlint is practically clean except for missing man pages for scripts in /usr/bin. It would be great to have them, but it's not a MUST.
APPROVED.


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