Red Hat Bugzilla – Bug 1135700
Review Request: antlr4 - parser generator tool
Last modified: 2015-03-31 11:56:52 EDT
Spec URL: http://ceclauson.no-ip.org/misc/antlr4.spec
SRPM URL: http://ceclauson.no-ip.org/misc/antlr4-4.4-1.fc20.src.rpm
This is a package for ANTLR 4, the 4th version of the well-known parser generator.
There are a few things that made this complicated:
1) The ANTLR 4.4 build depends on ANTLR 4.3, the last minor version, i.e., the tool essentially requires itself to build from source
2) ANTLR 4 also requires ANTLR 3 to build, but the ANTLR 3 version currently in the Fedora repositories is too old (3.5.2 is current, 3.4 in repository)
This package represents a "kludge" solution, I just put the two jars discussed above in the source folder. I'm open to feedback on alternative ways of approaching the above problem. However, given that the RPM can provide a functional ANTLR 4 package to Fedora users, it seems maybe justifiable to do it this way for at least version one?
Fedora Account System Username: cclauson
cclauson FAS username does not exist. Is this your first package? In that case, follow the steps listed in here: https://fedoraproject.org/wiki/Join_the_package_collection_maintainers
Please user your real name in Bugzilla.
You should contact current antlr3 owner to see if this package is needed. antlr package in Fedora is maintained by people from Red Hat and they know what kind of version they want. A4 has changed a lot and as far as I know no software depends on it so far.
Basically I think you can't go further without help from them.
(In reply to Eduardo Mayorga from comment #1)
> cclauson FAS username does not exist. Is this your first package? In that
> case, follow the steps listed in here:
> Please user your real name in Bugzilla.
Thanks/sorry. This is corrected now.
Yes, this is my first package :)
(In reply to Christopher Meng from comment #2)
> You should contact current antlr3 owner to see if this package is needed.
> antlr package in Fedora is maintained by people from Red Hat and they know
> what kind of version they want. A4 has changed a lot and as far as I know no
> software depends on it so far.
> Basically I think you can't go further without help from them.
I've gone ahead and emailed Colin Walters, the maintainer of antlr3 to see if he would like to look at this. However, I'm thinking that your objections may be based on a misunderstanding of the relationship between antlr3 and antlr4.
Antlr4 is not backwards compatible with antlr3, and because of this it in no way replaces, obsoletes or interferes with antlr3. A good analogy is GTK+, GTK2 and GTK3. Each of these major versions broke backwards compatibility, and as a result, all three are offered in the repository. Similarly, antlr3 and antlr4 and essentially two different tools, both can be offered in the repository and both can be installed simultaneously on a system.
So while certainly it may be helpful for the antlr3 maintainer to look over the package, technically there is no reason that this couldn't be introduced into the repository without worrying about antlr and antlr3. Aside from the build dependency that I mentioned earlier and obvious geneological relationship, antlr3 and antlr4 are essentially unrelated tools.
antlr3-3.5.2 is now in Fedora. Also I suggest that you provide two SPECs for review. The first one should be for antlr4-4.3 and imported initially into Fedora. Then this build can be used to update to antlr4-4.4. Or is it not possible to later build antl4-4.4 using itself? If it is not possible, then two packages e.g. antlr43 and antlr44 would be better.
Spec and SRPM links are invalid. Cooper, are you still interested in maintaining antlr4? If so, please fix the links.
Spec URL: http://ceclauson.ddns.net/misc/antlr4.spec
SRPM URL: http://ceclauson.ddns.net/misc/antlr4-4.4-1.fc20.src.rpm
Please, import/build also the maven plugin
To be honest, it's been a number of months since I looked at this, partially because I perceived that there was little to no demand for this package in Fedora.
However, because of the request above for the maven plugin, maybe this has changed? If so, maybe I can take a look at this in the near future. Indeed, there might be a ways to go to get this package in to shape.
Thanks and regards,
Some important stuff first:
1) To become Fedora packager you need to complete FPCA first. See: https://fedoraproject.org/wiki/Account_System/CompleteFPCA
2) Once you accept FPCA, any code submitted to Fedora will be licensed under "current default license", which is MIT. Thus you shouldn't add GPL headers to code you write for Fedora.
3) Bundling is strictly prohibited. The package needs to build without using any prebuilt binaries (JARs).
4) Make sure to read and understand packaging guidelines, especially Java-related. Also read Java packaging HOWTO: https://fedorahosted.org/released/javapackages/doc/
5) The package should probably have simillar structure to antlr3 package. It should be built with Maven. All modules should be enabled, including Maven plugin, as noted by Gil.
So I've been emailing with Gil, he seems to have a pretty complete RPM. The only addition from my original version that still seems relevant is a wrapper called "grun" that executes the class org.antlr.v4.runtime.misc.TestRig. The origins of this lie with the Antlr 4 documentation, it recommends a "grun" command to do this. I created the wrapper and included it so that the Fedora user wouldn't have to.
I also had a patch to TestRig.java that modified the error/help text on the command line to optionally reflect the name "grun" if it was given a "-grun" flag, which was done by the wrapper. Maybe this is worth preserving and, depending on the current state of the project, pushing upstream?
Other than that I have no problem with Gil's version replacing mine.
antlr4 has just been built for rawhide: http://koji.fedoraproject.org/koji/taskinfo?taskID=9380964
Cooper, if you still want to become Fedora contributor you can package something else or prove yourself by submitting patches for existing packages. For Java-related stuff I recommend to join IRC channel #fedora-java on FreeNode and ask there for review/sponsorship.
*** This bug has been marked as a duplicate of bug 1206080 ***