Bug 2457184

Summary: nodejs-esbuild: fails to install from EPEL 9
Product: [Fedora] Fedora EPEL Reporter: Carl George 🤠 <carlwgeorge>
Component: golang-github-evanw-esbuildAssignee: W. Michael Petullo <redhat>
Status: CLOSED ERRATA QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: epel9CC: go-sig, mike, redhat
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: golang-github-evanw-esbuild-0.27.2-2.el9 Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2026-06-19 00:48:33 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:

Description Carl George 🤠 2026-04-09 23:42:16 UTC
Description of problem:
nodejs-esbuild from EPEL 9 has one or more unresolved dependencies, causing it to be uninstallable.


Version-Release number of selected component (if applicable):
nodejs-esbuild-0.27.2-1.el9


How reproducible:
always


Steps to Reproduce:
1. dnf install nodejs-esbuild


Actual results:
Error: 
 Problem: package nodejs-esbuild-0.27.2-1.el9.x86_64 from epel requires nodejs(engine) >= 18, but none of the providers can be installed
  - conflicting requests
  - package nodejs-1:18.10.0-3.module+el9.1.0+16866+0fab0697.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:18.12.1-1.module+el9.1.0.z+17326+318294bb.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:18.14.2-2.module+el9.2.0.z+18497+a402347c.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:18.14.2-3.module+el9.2.0.z+18964+42696395.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:18.16.1-1.module+el9.2.0.z+19424+78951f07.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:18.16.1-2.module+el9.2.0.z+19546+89a27685.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:20.8.1-1.module+el9.3.0.z+20478+84a9f781.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:18.18.2-2.module+el9.2.0.z+20408+7cb5fda5.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:18.17.1-1.module+el9.2.0.z+19753+58118bc0.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:20.9.0-1.module+el9.3.0.z+20633+3a660725.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:18.19.0-1.module+el9.3.0+21155+b47e208c.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:20.11.0-1.module+el9.3.0+21188+8b938bcb.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:18.19.1-1.module+el9.3.0+21388+22892fb9.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:20.11.1-1.module+el9.3.0+21385+bac43d5a.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:18.20.2-2.module+el9.4.0+21742+692df1ea.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:20.12.2-2.module+el9.4.0+21731+46b5b8a7.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:20.14.0-1.module+el9.4.0+22015+c05247b8.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:18.20.4-1.module+el9.4.0+22195+c221878e.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:20.16.0-1.module+el9.4.0+22197+9e60f127.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:22.4.1-4.module+el9.5.0+22219+bffecb2b.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:22.11.0-1.module+el9.5.0+22488+08122204.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:20.17.0-1.module+el9.5.0+22333+c97d1c99.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:20.18.2-2.module+el9.5.0+22906+d1a288c7.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:18.20.6-1.module+el9.5.0+22773+9a359385.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:22.13.1-1.module+el9.5.0+22763+17233acb.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:20.18.2-1.module+el9.5.0+22758+4ad2c198.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:22.13.1-2.module+el9.5.0+22902+21169374.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:18.20.6-2.module+el9.5.0+22907+151b9f14.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:20.19.1-1.module+el9.6.0+23053+4195b0b2.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:22.16.0-1.module+el9.6.0+23151+b1496e9d.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:20.19.2-1.module+el9.6.0+23146+be9976bd.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:18.20.8-1.module+el9.6.0+23094+56b98c98.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:22.15.0-1.module+el9.6.0+23062+9e7801b9.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:22.16.0-2.module+el9.6.0+23339+d3c8acfa.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:22.19.0-2.module+el9.6.0+23473+45664c2d.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:20.19.5-1.module+el9.6.0+23523+a4f53f09.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:22.19.0-2.module+el9.7.0+23475+0a960596.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:24.11.1-2.module+el9.7.0+23729+aedb7b14.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:24.4.1-6.module+el9.7.0+23440+3a3625b1.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:20.19.5-1.module+el9.7.0+23586+8784698a.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:24.4.1-7.module+el9.7.0+23553+c342060b.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:22.22.0-1.module+el9.7.0+23896+b5802de9.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:20.20.0-1.module+el9.7.0+23895+0637d423.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:24.13.0-1.module+el9.7.0+23894+c8377628.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering
  - package nodejs-1:22.22.2-1.module+el9.7.0+24157+8ddb2461.x86_64 from rhel-9-for-x86_64-appstream-rpms is filtered out by modular filtering


Expected results:
successful installation

Comment 1 Carl George 🤠 2026-06-06 00:39:58 UTC
I looked into this a bit, and the dependency seems to be generated from this part of the source code.

https://github.com/evanw/esbuild/blob/v0.27.2/npm/esbuild/package.json#L15

EPEL packages can only require default packages, not alternate module streams.  RHEL 9 defaults to nodejs 16.  The last version of esbuild that worked with nodejs 16 was 0.21.5.

https://github.com/evanw/esbuild/blob/v0.21.5/npm/esbuild/package.json#L15

As far as I can tell, there are two options here.

* Downgrade golang-github-evanw-esbuild to version 0.21.5 for compatibility with nodejs 16.
* Remove the nodejs-esbuild subpackage from the epel9 spec file (either by deleting it or wrapping it in a disabled conditional).

Which one sounds better to you Mike?

Comment 2 W. Michael Petullo 2026-06-07 17:50:51 UTC
Carl, have to investigated which EPEL packages depend on golang-github-evanw-esbuild? I originally created an epel9 branch of the golang-github-evanw-esbuild package in response to this bug: https://bugzilla.redhat.com/show_bug.cgi?id=2457184. I don't know if they ever followed up to create the Chromium package the bug mentions. I usually deal with EPEL only when prompted.

I am not a nodejs user, so I cannot judge the implication of removing the nodejs-esbuild subpackage. My instinct is that should be the way forward. I would think that downgrading a package would be frowned upon.

Comment 3 Carl George 🤠 2026-06-08 18:06:47 UTC
You linked to this bug (the one we're commenting in) but I think you meant to link to bug 2361107 where the chromium maintainer requested an EPEL 9 build.  Chromium was added to EPEL 9 and is regularly updated.

The only package I can find that depends on golang-github-evanw-esbuild is chromium, as a build requirement.  If you did want to go the downgrade route in order to keep nodejs-esbuild, then you could try to downgrade it in a copr repo and then rebuild chromium in the same copr.  You're right that downgrading should generally be avoided, but in this case I would say it's justified for the nodejs compatibility.

Nothing requires or build requires nodejs-esbuild, so in theory it should be safe to remove.  At the very least it can't hurt anything, because functionally an uninstallable package is no different than a non-existent one.  I agree with your instinct that this is a better way forward.  Here's a pull request to implement that with a conditional.

https://src.fedoraproject.org/rpms/golang-github-evanw-esbuild/pull-request/18

Comment 4 Fedora Update System 2026-06-09 22:27:00 UTC
FEDORA-EPEL-2026-5d3e152c80 (golang-github-evanw-esbuild-0.27.2-2.el9) has been submitted as an update to Fedora EPEL 9.
https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2026-5d3e152c80

Comment 5 Fedora Update System 2026-06-10 01:35:33 UTC
FEDORA-EPEL-2026-5d3e152c80 has been pushed to the Fedora EPEL 9 testing repository.

You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2026-5d3e152c80

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 6 Fedora Update System 2026-06-19 00:48:33 UTC
FEDORA-EPEL-2026-5d3e152c80 (golang-github-evanw-esbuild-0.27.2-2.el9) has been pushed to the Fedora EPEL 9 stable repository.
If problem still persists, please make note of it in this bug report.