fix(erlang): build and ship common_test and dialyzer subpackages#17439
Draft
christopherco wants to merge 1 commit into
Draft
fix(erlang): build and ship common_test and dialyzer subpackages#17439christopherco wants to merge 1 commit into
christopherco wants to merge 1 commit into
Conversation
The upstream Fedora spec gates erlang-common_test and erlang-dialyzer
behind `%if %{__with_wxwidgets}`, and also passes
`--without-common_test` / `--without-dialyzer` to ./configure when
wxwidgets is off. AZL disables wxwidgets (no wxGTK in a headless cloud
distro), so neither subpackage was built — yet erlang-rebar3 requires
both, which made buildroot resolution fail for the entire erlang/elixir
stack (~20 downstream consumers).
Neither library actually links against wxGTK: each has only one
optional GUI entry point (`dialyzer:gui/0`, `ct` GUI launcher) that
delegates to a single wx-using module, and Erlang lazy-loads modules so
the wx code path is never reached in CLI mode. Confirmed in upstream
OTP-26.2.5.17 sources: dialyzer.app.src and common_test.app.src list
only kernel/stdlib/compiler in `applications` (the enforced load
list); wx appears only in the advisory `runtime_dependencies` metadata.
Overlay does, in order:
1. un-gate the %package/%files blocks for common_test and dialyzer
2. drop --without-common_test / --without-dialyzer from %configure
(replace with no-op tab+backslash so the surrounding \\<newline>
continuation stays intact)
3. strip Requires for the wx-using subpackages we don't ship
(debugger/observer/wx) from common_test, dialyzer, and src
4. fix the wxwidgets-off %install cleanup loop so it no longer
deletes ct_run/dialyzer, and rename bindir/typer to erlang-typer
to avoid the python3-typer-cli conflict (rhbz#2359567), matching
the wxwidgets-on branch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The upstream Fedora spec gates erlang-common_test and erlang-dialyzer behind
%if %{__with_wxwidgets}, and also passes--without-common_test/--without-dialyzerto ./configure when wxwidgets is off. AZL disables wxwidgets (no wxGTK in a headless cloud distro), so neither subpackage was built — yet erlang-rebar3 requires both, which made buildroot resolution fail for the entire erlang/elixir stack (~20 downstream consumers).Neither library actually links against wxGTK: each has only one optional GUI entry point (
dialyzer:gui/0,ctGUI launcher) that delegates to a single wx-using module, and Erlang lazy-loads modules so the wx code path is never reached in CLI mode. Confirmed in upstream OTP-26.2.5.17 sources: dialyzer.app.src and common_test.app.src list only kernel/stdlib/compiler inapplications(the enforced load list); wx appears only in the advisoryruntime_dependenciesmetadata.Overlay does, in order:
Fixes: AB#20325