Fedora Merge Review: antlr http://cvs.fedora.redhat.com/viewcvs/devel/antlr/
rpmlint on SRPM: antlr.src:375: W: macro-in-%changelog _bindir Macros are expanded in %changelog too, which can in unfortunate cases lead to the package not building at all, or other subtle unexpected conditions that affect the build. Even when that doesn't happen, the expansion results in possibly "rewriting history" on subsequent package revisions and generally odd entries eg. in source rpms, which is rarely wanted. Avoid use of macros in %changelog altogether, or use two '%'s to escape them, like '%%foo'. Fix. antlr.src: W: mixed-use-of-spaces-and-tabs (spaces: line 9, tab: line 76) The specfile mixes use of spaces and tabs for indentation, which is a cosmetic annoyance. Use either spaces or tabs for indentation, not both. Fix. antlr.src: W: non-standard-group Development/Code Generators The value of the Group tag in the package is not valid. Valid groups are: "Amusements/Games", "Amusements/Graphics", "Applications/Archiving", "Applications/Communications", "Applications/Databases", "Applications/Editors", "Applications/Emulators", "Applications/Engineering", "Applications/File", "Applications/Internet", "Applications/Multimedia", "Applications/Productivity", "Applications/Publishing", "Applications/System", "Applications/Text", "Development/Debug", "Development/Debuggers", "Development/Languages", "Development/Libraries", "Development/System", "Development/Tools", "Documentation", "System Environment/Base", "System Environment/Daemons", "System Environment/Kernel", "System Environment/Libraries", "System Environment/Shells", "User Interface/Desktops", "User Interface/X", "User Interface/X Hardware Support". I'd use Development/Tools. rpmlint on rpms: antlr.i386: W: devel-file-in-non-devel-package /usr/include/antlr/ANTLRUtil.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. etc. . .. Ok, due to the nature of the package. antlr.i386: W: incoherent-version-in-changelog 2.7.7-1jpp.6 0:2.7.7-1jpp.6.fc8 The last entry in %changelog contains a version identifier that is not coherent with the epoch:version-release tuple of the package. Fix. antlr-javadoc.i386: W: dangerous-command-in-%post rm antlr-javadoc.i386: W: dangerous-command-in-%postun rm It looks like these are necessary, so OK. Need to include something about how the RHCLEAN tarball can be produced from the upstream tarball. Mock build error: >> /usr/bin/make -C lib/cpp/antlr all >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> make[3]: Entering directory `/builddir/build/BUILD/antlr-2.7.7/lib/cpp/antlr' make[3]: Nothing to be done for `all'. make[3]: Leaving directory `/builddir/build/BUILD/antlr-2.7.7/lib/cpp/antlr' >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >> /usr/bin/make -C lib/cpp/src all >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> make[3]: Entering directory `/builddir/build/BUILD/antlr-2.7.7/lib/cpp/src' *** compiling /builddir/build/BUILD/antlr-2.7.7/lib/cpp/src/../../../lib/cpp/src/ANTLRUtil.cpp *** compiling /builddir/build/BUILD/antlr-2.7.7/lib/cpp/src/../../../lib/cpp/src/ASTFactory.cpp *** compiling /builddir/build/BUILD/antlr-2.7.7/lib/cpp/src/../../../lib/cpp/src/ASTNULLType.cpp *** compiling /builddir/build/BUILD/antlr-2.7.7/lib/cpp/src/../../../lib/cpp/src/ASTRefCount.cpp *** compiling /builddir/build/BUILD/antlr-2.7.7/lib/cpp/src/../../../lib/cpp/src/BaseAST.cpp *** compiling /builddir/build/BUILD/antlr-2.7.7/lib/cpp/src/../../../lib/cpp/src/BitSet.cpp *** compiling /builddir/build/BUILD/antlr-2.7.7/lib/cpp/src/../../../lib/cpp/src/CharBuffer.cpp *** compiling /builddir/build/BUILD/antlr-2.7.7/lib/cpp/src/../../../lib/cpp/src/CharScanner.cpp In file included from /builddir/build/BUILD/antlr-2.7.7/lib/cpp/src/../../../lib/cpp/src/CharScanner.cpp:10: /builddir/build/BUILD/antlr-2.7.7/scripts/../lib/cpp/antlr/CharScanner.hpp: In member function 'bool antlr::CharScannerLiteralsLess::operator /builddir/build/BUILD/antlr-2.7.7/scripts/../lib/cpp/antlr/CharScanner.hpp:565: error: 'strcasecmp' was not declared in this scope xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx >> E R R O R << ============================================================ g++ -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasy ============================================================ Got an error while trying to execute command above. Error messages (if any) must have shown before. The exit code was: exit(1) xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx make[3]: *** [/builddir/build/BUILD/antlr-2.7.7/lib/cpp/src/CharScanner.o] Error 1 make[3]: Leaving directory `/builddir/build/BUILD/antlr-2.7.7/lib/cpp/src' make[2]: *** [all] Error 1 make[2]: Leaving directory `/builddir/build/BUILD/antlr-2.7.7/lib/cpp' make[1]: *** [all] Error 1 make[1]: Leaving directory `/builddir/build/BUILD/antlr-2.7.7/lib' make: *** [all] Error 1 error: Bad exit status from /var/tmp/rpm-tmp.85628 (%build) Otherwise, looks good, no other blockers.
Any updates?
Re-evaluating against current rawhide SRPM. rpmlint on SRPM: In addition to above, antlr.src:286: W: libdir-macro-in-noarch-package %{_libdir}/libantlr.a The %{_libdir} or %{_lib} macro was found in a noarch package in a section that gets included in binary packages. This is most likely an error because these macros are expanded on the build host and their values vary between architectures, probably resulting in a package that does not work properly on all architectures at runtime. Investigate whether the package is really architecture independent or if some other dir/macro should be instead. antlr.src:293: W: libdir-macro-in-noarch-package %attr(-,root,root) %{_libdir}/gcj/%{name} The %{_libdir} or %{_lib} macro was found in a noarch package in a section that gets included in binary packages. This is most likely an error because these macros are expanded on the build host and their values vary between architectures, probably resulting in a package that does not work properly on all architectures at runtime. Investigate whether the package is really architecture independent or if some other dir/macro should be instead. Fix. rpmlint on RPMS: All the above still applies. Still need tarball creation info. Mock build is now good. Should be easy to correct all of the above so this can be closed.
Any objection to my committing fixes to CVS?
Just to clarify, have you fixed the warnings in comment #3?
I have not. I was simply offering to, to speed up the process.
Tested current version. All of the above still applies.
Could someone re-provide the srpm and spec file for package review? Please check out the latest package and review guidelines on FedoraProject wiki.
A SRPM and spec aren't needed, merge reviews are against the spec and sources in rawhide. Though, I see this was changed from Merge to regular review. Why?
This is definitely a merge review and the summary should not have been changed.
Sorry for my wrong bug info changing. And ping?
Adding new owner to CC. Please check current devel branch against the above concerns. Thank you!
Jon, yesterday I did a major cleanup of the devel branch, most of the applicable points at the top of the bug should be resolved now -- could you maybe revisit now? Thank you in advance.
Ok, fresh review: [limb@paguroidea SPECS]$ rpmlint -i ../SRPMS/antlr-2.7.7-9.fc12.src.rpm antlr.src: W: spelling-error Summary(en_US) ANother -> Another, Anther, An other The value of this tag appears to be misspelled. Please double-check. antlr.src: W: spelling-error %description -l en_US recognizers -> recognizer, recognizes, recognize rs The value of this tag appears to be misspelled. Please double-check. antlr.src: W: spelling-error %description -l en_US parsers -> parser, parses, parers The value of this tag appears to be misspelled. Please double-check. antlr.src: W: invalid-url Source0: antlr-2.7.7-RHCLEAN.tar.gz The value should be a valid, public HTTP, HTTPS, or FTP URL. 1 packages and 0 specfiles checked; 0 errors, 4 warnings. The spelling errors are fine, but I'd like to see an explanation as to why the tarball was modified and what steps were taken. Ideally, the comments should contain exact instructions for deriving this tarball from upstream. [limb@paguroidea SPECS]$ rpmlint -i ../RPMS/*/antlr* antlr-C++.i686: W: spelling-error Summary(en_US) parsers -> parser, parses, parers The value of this tag appears to be misspelled. Please double-check. antlr-C++.i686: W: spelling-error %description -l en_US parsers -> parser, parses, parers The value of this tag appears to be misspelled. Please double-check. antlr-C++.i686: W: no-documentation The package contains no documentation (README, doc, etc). You have to include documentation files. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/ANTLRUtil.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/CharInputBuffer.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/NoViableAltException.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/CommonAST.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/CharScanner.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/IOException.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/CommonASTWithHiddenTokens.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/TokenStreamRetryException.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/TreeParserSharedInputState.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/CircularQueue.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/TokenBuffer.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/TokenStreamRecognitionException.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/LLkParser.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/NoViableAltForCharException.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/TokenStreamRewriteEngine.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/BaseAST.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/lib/libantlr.a A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/TokenStreamHiddenTokenFilter.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/LexerSharedInputState.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/ASTRefCount.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/CommonHiddenStreamToken.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/RecognitionException.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/CharStreamIOException.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/BitSet.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/TokenStreamSelector.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/TokenStreamIOException.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/RefCount.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/TokenStreamException.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/AST.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/TokenRefCount.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/CharBuffer.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/TreeParser.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/SemanticException.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/InputBuffer.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/ASTArray.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/String.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/TokenStreamBasicFilter.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/Parser.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/ASTFactory.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/ANTLRException.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/config.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/CommonToken.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/ASTPair.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/MismatchedCharException.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/TokenStream.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/CharStreamException.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/ParserSharedInputState.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/TokenWithIndex.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/Token.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/ASTNULLType.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-C++.i686: W: devel-file-in-non-devel-package /usr/include/antlr/MismatchedTokenException.hpp A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. antlr-javadoc.noarch: W: dangerous-command-in-%post rm antlr-javadoc.noarch: W: dangerous-command-in-%postun rm antlr-manual.noarch: E: world-writable /usr/share/doc/antlr-manual-2.7.7/Makefile 0666 A file or directory in the package is installed with world writable permissions, which is most likely a security issue. antlr-manual.noarch: W: spurious-executable-perm /usr/share/doc/antlr-manual-2.7.7/Makefile.in The file is installed with executable permissions, but was identified as one that probably should not be executable. Verify if the executable bits are desired, and remove if not. antlr-manual.noarch: W: spurious-executable-perm /usr/share/doc/antlr-manual-2.7.7/csharp-runtime.html The file is installed with executable permissions, but was identified as one that probably should not be executable. Verify if the executable bits are desired, and remove if not. antlr-tool.noarch: W: spelling-error Summary(en_US) ANother -> Another, Anther, An other The value of this tag appears to be misspelled. Please double-check. antlr-tool.noarch: W: spelling-error %description -l en_US recognizers -> recognizer, recognizes, recognize rs The value of this tag appears to be misspelled. Please double-check. antlr-tool.noarch: W: spelling-error %description -l en_US parsers -> parser, parses, parers The value of this tag appears to be misspelled. Please double-check. antlr-tool.noarch: W: wrong-file-end-of-line-encoding /usr/share/doc/antlr-tool-2.7.7/LICENSE.txt This file has wrong end-of-line encoding, usually caused by creation or modification on a non-Unix system. It could prevent it from being displayed correctly in some circumstances. antlr-tool.noarch: W: devel-file-in-non-devel-package /usr/bin/antlr-config A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. 4 packages and 0 specfiles checked; 1 errors, 63 warnings. If there is any documentation that could be put in the C++ subpackage, please do so. What about the .hpp files? I assume there's a good reason they're not in a -devel package, but it should be commented on in the spec. Please fix the permissions in the docs as well as the encoding issue. Otherwise, everything looks great.
(In reply to comment #14) > Ok, fresh review: > > [limb@paguroidea SPECS]$ rpmlint -i ../SRPMS/antlr-2.7.7-9.fc12.src.rpm > > The spelling errors are fine, but I'd like to see an explanation as to why the > tarball was modified and what steps were taken. Ideally, the comments should > contain exact instructions for deriving this tarball from upstream. I found out that the only differences was that the antlr.jar file was removed which is anyway assured by: find . -name "*.jar" -exec rm -f {} \; in %prep. => completely unnecessary, I removed that and uploaded the original tarball. > [limb@paguroidea SPECS]$ rpmlint -i ../RPMS/*/antlr* > > antlr-javadoc.noarch: W: dangerous-command-in-%post rm > antlr-javadoc.noarch: W: dangerous-command-in-%postun rm Both %post and %postun have been removed (a relict from jpackage %ghosting of javadoc). > antlr-manual.noarch: E: world-writable > /usr/share/doc/antlr-manual-2.7.7/Makefile 0666 > A file or directory in the package is installed with world writable > permissions, which is most likely a security issue. > > antlr-manual.noarch: W: spurious-executable-perm > /usr/share/doc/antlr-manual-2.7.7/Makefile.in > The file is installed with executable permissions, but was identified as one > that probably should not be executable. Verify if the executable bits are > desired, and remove if not. Both Makefile and Makefile.in removed, it didn't make any sense for them to be installed. > antlr-manual.noarch: W: spurious-executable-perm > /usr/share/doc/antlr-manual-2.7.7/csharp-runtime.html > The file is installed with executable permissions, but was identified as one > that probably should not be executable. Verify if the executable bits are > desired, and remove if not. Fixed. > antlr-tool.noarch: W: wrong-file-end-of-line-encoding > /usr/share/doc/antlr-tool-2.7.7/LICENSE.txt > This file has wrong end-of-line encoding, usually caused by creation or > modification on a non-Unix system. It could prevent it from being displayed > correctly in some circumstances. Fixed. > If there is any documentation that could be put in the C++ subpackage, please > do so. What about the .hpp files? I assume there's a good reason they're not > in a -devel package, but it should be commented on in the spec. Yes, added. I also generated the doxygen documentation, but it's quite big so I put it into a -C++-docs package. I hope all the issues have been addressed, please check the current devel branch, thank you! Koji build here: http://koji.fedoraproject.org/koji/taskinfo?taskID=2146995
Fantastic. APPROVED! Thank you so much!