Bug 2080977

Summary: Please branch and build antlr4-project in epel9
Product: [Fedora] Fedora Reporter: Major Hayden 🤠 <mhayden>
Component: antlr4-projectAssignee: Jerry James <loganjerry>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: loganjerry
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-05-03 12:30:05 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2077853    

Description Major Hayden 🤠 2022-05-02 13:39:50 UTC
Hello there,

I'm working to backport azure-cli into epel9 and one of the dependencies is antlr4-project to satisfy 'python3dist(antlr4-python3-runtime)'.

Could you please branch and build this package for epel9? If you would like help with package maintenance, I would be glad to assist.

Comment 1 Jerry James 2022-05-02 14:18:28 UTC
Hi Major,

I don't currently maintain any EPEL packages, and I would like to keep it that way.  I have added you as comaintainer.  Feel free to take any steps you deem necessary.

Be aware that I am working on upgrading antlr4-project to version 4.10.1.  It has some backwards incompatibilities with previous versions, so it is taking me a bit to get all of my ducks in a row, but I hope to do that upgrade sometime in the next month or so, probably in Rawhide only.

Comment 2 Major Hayden 🤠 2022-05-02 16:06:23 UTC
Thanks for the quick reply, Jerry! I'll take a closer look at the spec to see what needs to be done to get it built for epel9.

azure-cli wants 4.7.2, so the current 4.9.3 version should be okay for now.

Comment 3 Major Hayden 🤠 2022-05-02 19:14:33 UTC
It *looks* like we could use the source from PyPi to make this one fairly simple. Am I oversimplifying this, Jerry, and forgetting about something critical with antlr4?

----------
%global         srcname     antlr4-python3-runtime

Name:           %{srcname}
Version:        4.7.2
Release:        %autorelease
Summary:        ANTLR (ANother Tool for Language Recognition) runtime for Python 3
License:        BSD
URL:            https://pypi.org/project/%{srcname}/
Source0:        %{pypi_source %{srcname} %{version}}

BuildArch:      noarch

BuildRequires:  python3-devel

%global _description %{expand:
ANTLR (ANother Tool for Language Recognition) runtime for Python 3}

%description %{_description}


%package -n python3-%{srcname}
Summary:        %{summary}
%description -n python3-%{srcname} %{_description}


%prep
%autosetup -n %{srcname}-%{version}


%generate_buildrequires
%pyproject_buildrequires -r


%build
%pyproject_wheel


%install
%pyproject_install
%pyproject_save_files antlr4


%files -n python3-%{srcname} -f %{pyproject_files}
%doc README.txt RELEASE-*.txt


%changelog
%autochangelog
----------

Comment 4 Jerry James 2022-05-02 21:58:04 UTC
I'm not clear on what you're asking.  If you mean that you only need the python runtime in EPEL, then sure, just packaging that would simplify your life considerably.

Comment 5 Jerry James 2022-05-02 22:06:14 UTC
I should add that that won't let you generate any parsers.  You need the (Java) antlr4 package for that.

Comment 6 Major Hayden 🤠 2022-05-03 11:58:10 UTC
Thanks, Jerry. That's what I was curious about. After digging through the azure-cli code, it looks like they tell users[0] to download the antlr4 jar and add it to the CLASSPATH manually.

I'll see how deep the dependency tree goes to build antlr4-project in epel9. 🧗🏻‍♂️

[0] https://github.com/Azure/azure-cli/blob/29767d75d850ddc1c24cc85bd46d861b61d77a47/src/azure-cli/azure/cli/command_modules/monitor/grammar/metric_alert/README.md

Comment 7 Major Hayden 🤠 2022-05-03 12:30:05 UTC
Oh boy, after working in COPR for about 20 minutes, I came to realize that this is going to be challenge with a long line of Java dependencies. 🥵

antlr4 is only needed in a couple of small places in azure-cli, so I'll see if I can work around this somehow without needing a long line of backports.

Thanks for helping me understand what's involved, Jerry. 😉