Fedora Merge Review: javacc http://cvs.fedora.redhat.com/viewcvs/devel/javacc/ Initial Owner: mwringe
I will do the review
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
(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.
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.
Fixed. http://koji.fedoraproject.org/koji/buildinfo?buildID=183402
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.