Bug 1795470 - Review Request: antlr4-project - Parser generator (ANother Tool for Language Recognition)
Summary: Review Request: antlr4-project - Parser generator (ANother Tool for Language ...
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Fabio Valentini
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1795467 1795469
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-01-28 04:09 UTC by Jerry James
Modified: 2020-02-07 20:56 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-02-07 20:56:49 UTC
Type: ---
Embargoed:
decathorpe: fedora-review+


Attachments (Terms of Use)

Description Jerry James 2020-01-28 04:09:43 UTC
Spec URL: https://jjames.fedorapeople.org/antlr4-cpp-runtime/antlr4-cpp-runtime.spec
SRPM URL: https://jjames.fedorapeople.org/antlr4-cpp-runtime/antlr4-cpp-runtime-4.8-1.fc32.src.rpm
RPMLINTRC URL: https://jjames.fedorapeople.org/antlr4-cpp-runtime/antlr4-cpp-runtime.rpmlintrc
Fedora Account System Username: jjames
Description: ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files.  It is widely used to build languages, tools, and frameworks.  From a grammar, ANTLR generates a parser that can build and walk parse trees.

Comment 1 Jerry James 2020-01-28 04:13:17 UTC
This is a replacement for the existing antlr4 package.  Since RPM does not currently allow a noarch main package with arch-specific subpackages, one of the arch-specific subpackages must play the role of main package.  I have been in contact with the maintainers of the antlr4 package and they approve of this change.

Comment 2 Fabio Valentini 2020-01-28 12:16:33 UTC
Taking this. Will start the review once the dependencies are in fedora.

A suggestion regarding the SRPM name: You *could* make the main package "empty" and call it "antlr4-runtimes" or "antlr4-project", and have a noarch "antlr4" subpackage for the Java stuff. That would work around both the awkward name and the RPM restrictions. But that's just an idea.

Comment 3 Jerry James 2020-01-29 03:36:26 UTC
Thanks for the suggestion, Fabio.  I hadn't considered that.  I'll try to work up a spec that does that and see if it is significantly more or less awkward than the current spec file.

Comment 4 Jerry James 2020-01-30 03:30:33 UTC
I went with antlr4-project, since it contains both antlr4 and the various runtimes.  New URLs:

Spec URL: https://jjames.fedorapeople.org/antlr4-project/antlr4-project.spec
SRPM URL: https://jjames.fedorapeople.org/antlr4-project/antlr4-project-4.8-1.fc32.src.rpm
RPMLINTRC URL: https://jjames.fedorapeople.org/antlr4-project/antlr4-project.rpmlintrc

I suspect releng is rather busy with the mass rebuild right now, so we may have to wait a bit for the treelayout package to be revived.

Comment 5 Fabio Valentini 2020-01-30 22:41:14 UTC
Yeah, this looks a bit cleaner now.

Small first suggestion: If you use the %{expand:} trick for the description, you'll have to put "%description (-n foo) %_desc" on the same line, otherwise you introduce a leading newline at the beginning of the resulting description text.

I'm now building the dependencies locally and doing the review manually.

Comment 6 Fabio Valentini 2020-01-30 23:25:18 UTC
Wow, with all that language support, it's a pretty gnarly package ... :D

Two questions:

- Why not use the "standard method" of installing go "packages" (with the go macros)?
- Did you consider requiring java-1.8.0-openjdk-aarch32 (don't depend on my spelling this correctly) on %ifarch %{arm}?
  It should speed up package builds significantly, and possibly also fix the test suite timeout issue.
  Here's an example of how it works: https://src.fedoraproject.org/rpms/jna/blob/master/f/jna.spec#_52


Otherwise:

- License correct and permissible (3-Clause-BSD), and looks like the LICENSE.txt file is installed for every subpackage combination (please check).
- Latest version is packaged.
- BuildRequires look correct and are even sorted alphabetically :)
- Patches are commented, but no reference to upstream issues or something like that (adding that would be great)
- Package builds successfully when dependencies are present.
- Built packages install successfully when dependencies are present.


I'd just still like to see a successful koji scratch build (which means waiting for the dependencies to be imported into rawhide).
Not because I don't trust local builds, but because we still need to check whether "noarch" subpackages are actually built identically on the different architectures.

Comment 7 Jerry James 2020-01-31 02:52:57 UTC
(In reply to Fabio Valentini from comment #5)
> Small first suggestion: If you use the %{expand:} trick for the description,
> you'll have to put "%description (-n foo) %_desc" on the same line,
> otherwise you introduce a leading newline at the beginning of the resulting
> description text.

Good catch.  Fixed.


(In reply to Fabio Valentini from comment #6)
> Wow, with all that language support, it's a pretty gnarly package ... :D

It sure is, and I even punted on the JavaScript runtime.

> - Why not use the "standard method" of installing go "packages" (with the go
> macros)?

I can't use %gometa, because that adds an incorrect ExclusiveArch tag (hence the bare BR on go-rpm-macros).  I can use %goname to generate the package name, but go-rpm-macros alone does not seem to be enough to get that macro.  What do I need to BR for it?  And after that I'm lost.  If you know how to integrate more of the go macros into the spec, I am happy to take your input.

And speaking of macros that can't be used, it turns out that %mvn_install cannot be used, because it uses %{name} everywhere, and I need "antlr4", not "antlr4-project", to be what it uses.  I've manually expanded the macro for that reason.

> - Did you consider requiring java-1.8.0-openjdk-aarch32 (don't depend on my
> spelling this correctly) on %ifarch %{arm}?

I did not know about that.  Thanks for the tip.

> - License correct and permissible (3-Clause-BSD), and looks like the
> LICENSE.txt file is installed for every subpackage combination (please
> check).

I have checked and double checked this, so I'm pretty confident it is right.

> - BuildRequires look correct and are even sorted alphabetically :)

I like to do that because it makes it easy for my slow human brain to decide if something is in the BuildRequires already. :-)

> - Patches are commented, but no reference to upstream issues or something
> like that (adding that would be great)

Added.

> I'd just still like to see a successful koji scratch build (which means
> waiting for the dependencies to be imported into rawhide).
> Not because I don't trust local builds, but because we still need to check
> whether "noarch" subpackages are actually built identically on the different
> architectures.

I understand and agree.  New URLs:

Spec URL: https://jjames.fedorapeople.org/antlr4-cpp-runtime/antlr4-cpp-runtime.spec
SRPM URL: https://jjames.fedorapeople.org/antlr4-cpp-runtime/antlr4-cpp-runtime-4.8-2.fc32.src.rpm
RPMLINTRC URL: https://jjames.fedorapeople.org/antlr4-cpp-runtime/antlr4-cpp-runtime.rpmlintrc

Comment 8 Fabio Valentini 2020-01-31 09:42:28 UTC
(In reply to Jerry James from comment #7)
> I can't use %gometa, because that adds an incorrect ExclusiveArch tag (hence
> the bare BR on go-rpm-macros).  I can use %goname to generate the package
> name, but go-rpm-macros alone does not seem to be enough to get that macro. 
> What do I need to BR for it?  And after that I'm lost.  If you know how to
> integrate more of the go macros into the spec, I am happy to take your input.
> 
> And speaking of macros that can't be used, it turns out that %mvn_install
> cannot be used, because it uses %{name} everywhere, and I need "antlr4", not
> "antlr4-project", to be what it uses.  I've manually expanded the macro for
> that reason.

That's enough of a reason for me. I think %gometa also sets up some other variables that are probably needed by goinstall, and as you said, it sets an incompatible value for ExclusiveArch, so I'm fine with the current approach.

> > - Did you consider requiring java-1.8.0-openjdk-aarch32 (don't depend on my
> > spelling this correctly) on %ifarch %{arm}?
> 
> I did not know about that.  Thanks for the tip.

Let's see if it helps once the mass rebuild is over and the dependencies are in koji :-)

> > - License correct and permissible (3-Clause-BSD), and looks like the
> > LICENSE.txt file is installed for every subpackage combination (please
> > check).
> 
> I have checked and double checked this, so I'm pretty confident it is right.

Great!

> > - BuildRequires look correct and are even sorted alphabetically :)
> 
> I like to do that because it makes it easy for my slow human brain to decide
> if something is in the BuildRequires already. :-)

Yeah, I do the same.

> > - Patches are commented, but no reference to upstream issues or something
> > like that (adding that would be great)
> 
> Added.

Thanks!

> > I'd just still like to see a successful koji scratch build (which means
> > waiting for the dependencies to be imported into rawhide).
> > Not because I don't trust local builds, but because we still need to check
> > whether "noarch" subpackages are actually built identically on the different
> > architectures.
> 
> I understand and agree.  New URLs:

I mean, it's not blocking the review, but if it causes build failures you'll have to fix it either way, before or after the import.

> Spec URL:
> https://jjames.fedorapeople.org/antlr4-cpp-runtime/antlr4-cpp-runtime.spec
> SRPM URL:
> https://jjames.fedorapeople.org/antlr4-cpp-runtime/antlr4-cpp-runtime-4.8-2.
> fc32.src.rpm
> RPMLINTRC URL:
> https://jjames.fedorapeople.org/antlr4-cpp-runtime/antlr4-cpp-runtime.
> rpmlintrc

Those links return 404s for me.

Comment 10 Fabio Valentini 2020-02-06 14:47:36 UTC
Spec URL: https://jjames.fedorapeople.org/antlr4-project/antlr4-project.spec
SRPM URL: https://jjames.fedorapeople.org/antlr4-project/antlr4-project-4.8-2.fc32.src.rpm

(Note: -2.fc32 instead of -1.fc32)

Running fedora-review now.

Comment 11 Fabio Valentini 2020-02-06 15:30:52 UTC
One final issue:

- Package must not depend on deprecated() packages.
  Note: maven-project is deprecated, you must not depend on it.

Two final comments:

- Double check that the upgrade path from the old antlr4 package is working.
  I think the names of the produced binary RPMs are the same, so everything
  should be good (but please verify).
- Make sure to include the trailing slash for the egg-info directory in the
  python3 subpackage's %files list.

Otherwise, looks good. A koji scratch build on rawhide worked as well.

→ If possible, remove the dependency on maven-project. If that's not possible, we
can let the deprecated dependency slide since this is a renamed and not a new
package.

You could try either removing the dependency, or replacing it with maven-parent,
which is (I think) what superseded it with recent versions.


Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


===== MUST items =====

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: This is expected for swift libraries.
[x]: If your application is a C or C++ application you must list a
     BuildRequires against gcc, gcc-c++ or clang.
[x]: Header files in -devel subpackage, if present.
[x]: ldconfig not called in %post and %postun for Fedora 28 and later.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
[x]: License file installed when any subpackage combination is installed.
[x]: Package does not own files or directories owned by other packages.
     Note: Expected co-ownership of common go paths.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[x]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[?]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[-]: Package is not known to require an ExcludeArch tag.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: 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 is included in %license.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

Java:
[x]: Bundled jar/class files should be removed before build

Python:
[x]: Python eggs must not download any dependencies during the build
     process.
[x]: A package which is used by another package via an egg interface should
     provide egg info.
[x]: Package meets the Packaging Guidelines::Python
[x]: Package contains BR: python2-devel or python3-devel
[x]: Packages MUST NOT have dependencies (either build-time or runtime) on
     packages named with the unversioned python- prefix unless no properly
     versioned package exists. Dependencies on Python packages instead MUST
     use names beginning with python2- or python3- as appropriate.
[x]: Python packages must not contain %{pythonX_site(lib|arch)}/* in %files
[x]: Binary eggs must be removed in %prep

===== SHOULD items =====

Generic:
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[x]: Fully versioned dependency in subpackages if applicable.
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[-]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package
     is arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: antlr4-runtime-test-annotations-4.8-2.fc32.noarch.rpm
          antlr4-runtime-test-annotation-processors-4.8-2.fc32.noarch.rpm
          antlr4-runtime-4.8-2.fc32.noarch.rpm
          antlr4-4.8-2.fc32.noarch.rpm
          antlr4-maven-plugin-4.8-2.fc32.noarch.rpm
          antlr4-javadoc-4.8-2.fc32.noarch.rpm
          antlr4-doc-4.8-2.fc32.noarch.rpm
          antlr4-cpp-runtime-4.8-2.fc32.x86_64.rpm
          antlr4-cpp-runtime-devel-4.8-2.fc32.x86_64.rpm
          golang-antlr4-runtime-devel-4.8-2.fc32.noarch.rpm
          mono-antlr4-runtime-4.8-2.fc32.noarch.rpm
          python3-antlr4-runtime-4.8-2.fc32.noarch.rpm
          swift-antlr4-runtime-4.8-2.fc32.x86_64.rpm
          antlr4-project-debugsource-4.8-2.fc32.x86_64.rpm
          antlr4-project-4.8-2.fc32.src.rpm
antlr4-runtime-test-annotations.noarch: W: spelling-error %description -l en_US parsers -> parser, parses, parers
antlr4-runtime-test-annotations.noarch: W: no-documentation
antlr4-runtime-test-annotation-processors.noarch: W: spelling-error %description -l en_US parsers -> parser, parses, parers
antlr4-runtime-test-annotation-processors.noarch: W: no-documentation
antlr4-runtime.noarch: W: spelling-error %description -l en_US parsers -> parser, parses, parers
antlr4.noarch: W: no-manual-page-for-binary antlr4
antlr4-maven-plugin.noarch: W: spelling-error %description -l en_US parsers -> parser, parses, parers
antlr4-maven-plugin.noarch: W: no-documentation
antlr4-cpp-runtime.x86_64: W: spelling-error %description -l en_US parsers -> parser, parses, parers
antlr4-cpp-runtime-devel.x86_64: W: spelling-error Summary(en_US) parsers -> parser, parses, parers
antlr4-cpp-runtime-devel.x86_64: W: spelling-error %description -l en_US parsers -> parser, parses, parers
golang-antlr4-runtime-devel.noarch: W: spelling-error %description -l en_US parsers -> parser, parses, parers
golang-antlr4-runtime-devel.noarch: W: no-documentation
golang-antlr4-runtime-devel.noarch: W: hidden-file-or-dir /usr/share/gocode/src/github.com/antlr/antlr4/runtime/Go/antlr/.goipath
mono-antlr4-runtime.noarch: W: spelling-error %description -l en_US parsers -> parser, parses, parers
mono-antlr4-runtime.noarch: W: only-non-binary-in-usr-lib
python3-antlr4-runtime.noarch: W: spelling-error %description -l en_US parsers -> parser, parses, parers
python3-antlr4-runtime.noarch: W: no-manual-page-for-binary pygrun
swift-antlr4-runtime.x86_64: W: spelling-error %description -l en_US parsers -> parser, parses, parers
swift-antlr4-runtime.x86_64: W: no-documentation
antlr4-project.src:10: E: hardcoded-library-path in %{_prefix}/lib/swift/linux
antlr4-project.src:299: E: hardcoded-library-path in %{_prefix}/lib
15 packages and 0 specfiles checked; 2 errors, 20 warnings.




Rpmlint (installed packages)
----------------------------
antlr4-javadoc.noarch: W: invalid-url URL: http://www.antlr.org/ <urlopen error [Errno -2] Name or service not known>
swift-antlr4-runtime.x86_64: W: spelling-error %description -l en_US parsers -> parser, parses, parers
swift-antlr4-runtime.x86_64: W: invalid-url URL: http://www.antlr.org/ <urlopen error [Errno -2] Name or service not known>
swift-antlr4-runtime.x86_64: W: no-documentation
antlr4-project-debugsource.x86_64: W: invalid-url URL: http://www.antlr.org/ <urlopen error [Errno -2] Name or service not known>
mono-antlr4-runtime.noarch: W: spelling-error %description -l en_US parsers -> parser, parses, parers
mono-antlr4-runtime.noarch: W: invalid-url URL: http://www.antlr.org/ <urlopen error [Errno -2] Name or service not known>
mono-antlr4-runtime.noarch: W: only-non-binary-in-usr-lib
antlr4-runtime.noarch: W: spelling-error %description -l en_US parsers -> parser, parses, parers
antlr4-runtime.noarch: W: invalid-url URL: http://www.antlr.org/ <urlopen error [Errno -2] Name or service not known>
antlr4-maven-plugin.noarch: W: spelling-error %description -l en_US parsers -> parser, parses, parers
antlr4-maven-plugin.noarch: W: invalid-url URL: http://www.antlr.org/ <urlopen error [Errno -2] Name or service not known>
antlr4-maven-plugin.noarch: W: no-documentation
antlr4-runtime-test-annotations.noarch: W: spelling-error %description -l en_US parsers -> parser, parses, parers
antlr4-runtime-test-annotations.noarch: W: invalid-url URL: http://www.antlr.org/ <urlopen error [Errno -2] Name or service not known>
antlr4-runtime-test-annotations.noarch: W: no-documentation
antlr4.noarch: W: invalid-url URL: http://www.antlr.org/ <urlopen error [Errno -2] Name or service not known>
antlr4.noarch: W: no-manual-page-for-binary antlr4
antlr4-cpp-runtime-devel.x86_64: W: spelling-error Summary(en_US) parsers -> parser, parses, parers
antlr4-cpp-runtime-devel.x86_64: W: spelling-error %description -l en_US parsers -> parser, parses, parers
antlr4-cpp-runtime-devel.x86_64: W: invalid-url URL: http://www.antlr.org/ <urlopen error [Errno -2] Name or service not known>
antlr4-runtime-test-annotation-processors.noarch: W: spelling-error %description -l en_US parsers -> parser, parses, parers
antlr4-runtime-test-annotation-processors.noarch: W: invalid-url URL: http://www.antlr.org/ <urlopen error [Errno -2] Name or service not known>
antlr4-runtime-test-annotation-processors.noarch: W: no-documentation
antlr4-cpp-runtime.x86_64: W: spelling-error %description -l en_US parsers -> parser, parses, parers
antlr4-cpp-runtime.x86_64: W: invalid-url URL: http://www.antlr.org/ <urlopen error [Errno -2] Name or service not known>
antlr4-doc.noarch: W: invalid-url URL: http://www.antlr.org/ <urlopen error [Errno -2] Name or service not known>
python3-antlr4-runtime.noarch: W: spelling-error %description -l en_US parsers -> parser, parses, parers
python3-antlr4-runtime.noarch: W: invalid-url URL: http://www.antlr.org/ <urlopen error [Errno -2] Name or service not known>
python3-antlr4-runtime.noarch: W: no-manual-page-for-binary pygrun
golang-antlr4-runtime-devel.noarch: W: spelling-error %description -l en_US parsers -> parser, parses, parers
golang-antlr4-runtime-devel.noarch: W: invalid-url URL: http://www.antlr.org/ <urlopen error [Errno -2] Name or service not known>
golang-antlr4-runtime-devel.noarch: W: no-documentation
golang-antlr4-runtime-devel.noarch: W: hidden-file-or-dir /usr/share/gocode/src/github.com/antlr/antlr4/runtime/Go/antlr/.goipath
14 packages and 0 specfiles checked; 0 errors, 34 warnings.



Unversioned so-files
--------------------
swift-antlr4-runtime: /usr/lib/swift/linux/libAntlr4.so

Source checksums
----------------
https://github.com/antlr/antlr4/archive/4.8/antlr4-4.8.tar.gz :
  CHECKSUM(SHA256) this package     : 992d52444b81ed75e52ea62f9f38ecb7652d5ce2a2130af143912b3042a6d77e
  CHECKSUM(SHA256) upstream package : 992d52444b81ed75e52ea62f9f38ecb7652d5ce2a2130af143912b3042a6d77e


Requires
--------
antlr4-runtime-test-annotations (rpmlib, GLIBC filtered):
    java-headless
    javapackages-filesystem

antlr4-runtime-test-annotation-processors (rpmlib, GLIBC filtered):
    antlr4-runtime-test-annotations
    java-headless
    javapackages-filesystem
    mvn(com.sun:tools)
    mvn(org.antlr:antlr4-runtime-test-annotations)

antlr4-runtime (rpmlib, GLIBC filtered):
    java-headless
    javapackages-filesystem

antlr4 (rpmlib, GLIBC filtered):
    /usr/bin/bash
    antlr4-runtime
    java-headless
    javapackages-filesystem
    mvn(com.ibm.icu:icu4j)
    mvn(com.sun:tools)
    mvn(javax.json:javax.json-api)
    mvn(org.abego.treelayout:org.abego.treelayout.core)
    mvn(org.antlr:ST4)
    mvn(org.antlr:antlr-runtime)
    mvn(org.antlr:antlr4-runtime)
    mvn(org.glassfish:javax.json)

antlr4-maven-plugin (rpmlib, GLIBC filtered):
    antlr4
    java-headless
    javapackages-filesystem
    mvn(org.antlr:antlr4)
    mvn(org.apache.maven:maven-plugin-api)
    mvn(org.apache.maven:maven-project)
    mvn(org.codehaus.plexus:plexus-compiler-api)
    mvn(org.sonatype.plexus:plexus-build-api)

antlr4-javadoc (rpmlib, GLIBC filtered):
    javapackages-filesystem

antlr4-doc (rpmlib, GLIBC filtered):

antlr4-cpp-runtime (rpmlib, GLIBC filtered):
    ld-linux-x86-64.so.2()(64bit)
    libc.so.6()(64bit)
    libgcc_s.so.1()(64bit)
    libgcc_s.so.1(GCC_3.0)(64bit)
    libgcc_s.so.1(GCC_3.4)(64bit)
    libstdc++.so.6()(64bit)
    libstdc++.so.6(CXXABI_1.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.11)(64bit)
    libstdc++.so.6(CXXABI_1.3.3)(64bit)
    libstdc++.so.6(CXXABI_1.3.5)(64bit)
    libstdc++.so.6(CXXABI_1.3.7)(64bit)
    rtld(GNU_HASH)

antlr4-cpp-runtime-devel (rpmlib, GLIBC filtered):
    antlr4-cpp-runtime(x86-64)
    libantlr4-runtime.so.4.8()(64bit)

golang-antlr4-runtime-devel (rpmlib, GLIBC filtered):
    go-filesystem

mono-antlr4-runtime (rpmlib, GLIBC filtered):
    mono(System)
    mono(System.Core)
    mono(mscorlib)

python3-antlr4-runtime (rpmlib, GLIBC filtered):
    /usr/bin/python3
    python(abi)

swift-antlr4-runtime (rpmlib, GLIBC filtered):
    libBlocksRuntime.so()(64bit)
    libFoundation.so()(64bit)
    libc.so.6()(64bit)
    libdispatch.so()(64bit)
    libdl.so.2()(64bit)
    libgcc_s.so.1()(64bit)
    libm.so.6()(64bit)
    libpthread.so.0()(64bit)
    libstdc++.so.6()(64bit)
    libswiftCore.so()(64bit)
    libswiftDispatch.so()(64bit)
    libswiftGlibc.so()(64bit)
    libutil.so.1()(64bit)
    rtld(GNU_HASH)

antlr4-project-debugsource (rpmlib, GLIBC filtered):



Provides
--------
antlr4-runtime-test-annotations:
    antlr4-runtime-test-annotations
    mvn(org.antlr:antlr4-runtime-test-annotations)
    mvn(org.antlr:antlr4-runtime-test-annotations:pom:)

antlr4-runtime-test-annotation-processors:
    antlr4-runtime-test-annotation-processors
    mvn(org.antlr:antlr4-runtime-test-annotation-processors)
    mvn(org.antlr:antlr4-runtime-test-annotation-processors:pom:)

antlr4-runtime:
    antlr4-runtime
    mvn(org.antlr:antlr4-master:pom:)
    mvn(org.antlr:antlr4-runtime)
    mvn(org.antlr:antlr4-runtime:pom:)
    osgi(org.antlr.antlr4-runtime)

antlr4:
    antlr4
    mvn(org.antlr:antlr4)
    mvn(org.antlr:antlr4:pom:)

antlr4-maven-plugin:
    antlr4-maven-plugin
    mvn(org.antlr:antlr4-maven-plugin)
    mvn(org.antlr:antlr4-maven-plugin:pom:)

antlr4-javadoc:
    antlr4-javadoc

antlr4-doc:
    antlr4-doc

antlr4-cpp-runtime:
    antlr4-cpp-runtime
    antlr4-cpp-runtime(x86-64)
    libantlr4-runtime.so.4.8()(64bit)

antlr4-cpp-runtime-devel:
    antlr4-cpp-runtime-devel
    antlr4-cpp-runtime-devel(x86-64)

golang-antlr4-runtime-devel:
    golang(github.com/antlr/antlr4/runtime/Go/antlr)
    golang-antlr4-runtime-devel
    golang-ipath(github.com/antlr/antlr4/runtime/Go/antlr)

mono-antlr4-runtime:
    mono(Antlr4.Runtime.Standard)
    mono-antlr4-runtime

python3-antlr4-runtime:
    antlr4-python3-runtime
    python3-antlr4-runtime
    python3.8dist(antlr4-python3-runtime)
    python3dist(antlr4-python3-runtime)

swift-antlr4-runtime:
    libAntlr4.so()(64bit)
    swift-antlr4-runtime
    swift-antlr4-runtime(x86-64)

antlr4-project-debugsource:
    antlr4-project-debugsource
    antlr4-project-debugsource(x86-64)



Generated by fedora-review 0.7.4 (54fa030) last change: 2019-12-07
Command line :/usr/bin/fedora-review -m fedora-rawhide-x86_64 -o --enablerepo local -b 1795470
Buildroot used: fedora-rawhide-x86_64
Active plugins: C/C++, Generic, Python, Shell-api, Java
Disabled plugins: R, Perl, PHP, fonts, Ocaml, Haskell, SugarActivity
Disabled flags: EPEL6, EPEL7, DISTTAG, BATCH, EXARCH

Comment 12 Jerry James 2020-02-07 02:37:31 UTC
(In reply to Fabio Valentini from comment #11)
> One final issue:
>
> - Package must not depend on deprecated() packages.
>   Note: maven-project is deprecated, you must not depend on it.

Okay.  However, maven-parent is not the replacement for it, but (in this case at least) maven-core.jar from maven-lib is.  This works:

%pom_change_dep org.apache.maven:maven-project:2.2.1 org.apache.maven:maven-core:3.6.1 antlr4-maven-plugin

> Two final comments:
>
> - Double check that the upgrade path from the old antlr4 package is working.
>   I think the names of the produced binary RPMs are the same, so everything
>   should be good (but please verify).

That's easy to do because antlr4 is needed to build itself.  It wants its own maven plugin, so the previous version of antlr4 is always pulled into the build root when building a new version.  Then just install the newly built RPMs into the build root, and there's your update scenario.  I have done this and it works.  I have also verified that version 4.8 can bootstrap itself by building it a second time after adding the first build run's RPMs into my local repository.

> - Make sure to include the trailing slash for the egg-info directory in the
>   python3 subpackage's %files list.

Added.  I also added man pages for the antlr4 and pygrun binaries, produced with help2man.

New URLs:
Spec URL: https://jjames.fedorapeople.org/antlr4-project/antlr4-project.spec
SRPM URL: https://jjames.fedorapeople.org/antlr4-project/antlr4-project-4.8-3.fc32.src.rpm
RPMLINTRC URL: https://jjames.fedorapeople.org/antlr4-project/antlr4-project.rpmlintrc

Comment 13 Fabio Valentini 2020-02-07 09:11:49 UTC
Looks good now. Thanks!

Package approved.

Do the review swaps still apply? :)

Comment 14 Jerry James 2020-02-07 17:21:19 UTC
Sure.  What do you need reviewed?

Comment 15 Fabio Valentini 2020-02-07 17:41:30 UTC
I have a few simple rust packages (99% autogenerated) pending.

Only changes from the generated .spec files are 1) installing license file(s) with %license, and 2) fixing Summary to be not too long.

I don't care which one (or two):

https://bugzilla.redhat.com/show_bug.cgi?id=1795197
https://bugzilla.redhat.com/show_bug.cgi?id=1795200
https://bugzilla.redhat.com/show_bug.cgi?id=1795204
https://bugzilla.redhat.com/show_bug.cgi?id=1795209
https://bugzilla.redhat.com/show_bug.cgi?id=1795210
https://bugzilla.redhat.com/show_bug.cgi?id=1796840

Thanks!

Comment 16 Gwyn Ciesla 2020-02-07 17:47:23 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/antlr4-project

Comment 17 Jerry James 2020-02-07 20:56:49 UTC
Built in Rawhide.


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