Bug 1135700 - Review Request: antlr4 - parser generator tool
Review Request: antlr4 - parser generator tool
Status: CLOSED DUPLICATE of bug 1206080
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
unspecified Severity medium
: ---
: ---
Assigned To: Nobody's working on this, feel free to take it
Fedora Extras Quality Assurance
:
Depends On: 1015909
Blocks:
  Show dependency treegraph
 
Reported: 2014-08-30 11:18 EDT by Cooper Clauson
Modified: 2015-03-31 11:56 EDT (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2015-03-31 11:56:52 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Cooper Clauson 2014-08-30 11:18:55 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
Description:

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
Comment 1 Eduardo Mayorga 2014-08-30 12:33:33 EDT
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.
Comment 2 Christopher Meng 2014-08-30 19:39:59 EDT
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.
Comment 3 Cooper Clauson 2014-08-30 22:19:57 EDT
(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:
> https://fedoraproject.org/wiki/Join_the_package_collection_maintainers
> 
> Please user your real name in Bugzilla.

Thanks/sorry.  This is corrected now.

Yes, this is my first package :)
Comment 4 Cooper Clauson 2014-08-31 09:58:09 EDT
(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.

Hi Christopher,

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.

Thanks,
Cooper
Comment 5 Till Maas 2014-09-07 14:38:19 EDT
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.
Comment 6 Mikolaj Izdebski 2015-03-20 10:22:22 EDT
Spec and SRPM links are invalid. Cooper, are you still interested in maintaining antlr4? If so, please fix the links.
Comment 7 Cooper Clauson 2015-03-22 18:23:11 EDT
New Links:
Spec URL: http://ceclauson.ddns.net/misc/antlr4.spec
SRPM URL: http://ceclauson.ddns.net/misc/antlr4-4.4-1.fc20.src.rpm
Comment 8 gil cattaneo 2015-03-22 18:33:21 EDT
Please, import/build also the maven plugin
Comment 9 Cooper Clauson 2015-03-22 22:53:54 EDT
Hi guys,

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,
Cooper
Comment 10 Mikolaj Izdebski 2015-03-23 02:03:04 EDT
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.
Comment 11 Cooper Clauson 2015-03-24 00:52:26 EDT
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.

Thanks
Comment 12 Mikolaj Izdebski 2015-03-31 11:56:52 EDT
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 ***

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