Skip to content

maint(core): fix option defaults for Meson >= 1.1#15127

Closed
ermshiperete wants to merge 1 commit intomasterfrom
maint/core/wasmtests
Closed

maint(core): fix option defaults for Meson >= 1.1#15127
ermshiperete wants to merge 1 commit intomasterfrom
maint/core/wasmtests

Conversation

@ermshiperete
Copy link
Copy Markdown
Contributor

Meson 1.1 changed the name of the options file from meson_options.txt to meson.options. This change creates symlinks for these files until we can update the required min version.

One thing where the lack of the options was noticeable was that we didn't run the core WASM tests.

Test-bot: skip

Meson 1.1 changed the name of the options file from `meson_options.txt`
to `meson.options`. This change creates symlinks for these files until
we can update the required min version.

One thing where the lack of the options was noticeable was that we didn't
run the core WASM tests.

Test-bot: skip
@ermshiperete ermshiperete requested a review from mcdurdin November 9, 2025 17:06
@github-project-automation github-project-automation bot moved this to Todo in Keyman Nov 9, 2025
@github-actions github-actions bot added developer/ linux/ linux/engine/ core/ Keyman Core maint Maintenance work -- continuous integration, build scripts, infrastructure labels Nov 9, 2025
@keymanapp-test-bot
Copy link
Copy Markdown

keymanapp-test-bot bot commented Nov 9, 2025

User Test Results

Test specification and instructions

User tests are not required

Test Artifacts

  • macOS
    • Keyman for macOS - build : all tests passed (no artifacts on BuildLevel "build")
    • Keyman for macOS (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
  • Web
    • KeymanWeb Test Home - build : all tests passed (no artifacts on BuildLevel "build")

@keymanapp-test-bot keymanapp-test-bot bot added this to the A19S16 milestone Nov 9, 2025
@ermshiperete
Copy link
Copy Markdown
Contributor Author

There are two reasons to not update the minimum required Meson version at this point:

  • usually we update min versions at the beginning of a release cycle
  • we still support Ubuntu 22.04 Jammy which comes with Meson 0.63 out of the box. We re-packaged Meson 1.0 for Jammy and have that on Launchpad, but updating the min Meson version would require re-packaging the new Meson version. We can probably stop supporting Jammy for v20.

This change doesn't seem important enough to warrant a change of the min Meson version at this point.

@mcdurdin
Copy link
Copy Markdown
Member

This change creates symlinks for these files until we can update the required min version.

Symlinks are not enabled in Git for Windows by default (see https://gitforwindows.org/symbolic-links.html). Instead, we need to just copy the files, and add a note at the top of them to keep them in sync, and to remove the .txt version once we have a min ver of meson 1.1. (Annoying silly filename changes causing unnecessary maintenance!)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This symlink is also in the wrong place (and as noted needs to be a regular file copy of meson_options.txt). It should be in developer/src/kmcmplib.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oops 😄

Copy link
Copy Markdown
Member

@mcdurdin mcdurdin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 changes requested

@ermshiperete
Copy link
Copy Markdown
Contributor Author

ermshiperete commented Nov 10, 2025

This change creates symlinks for these files until we can update the required min version.

Symlinks are not enabled in Git for Windows by default (see gitforwindows.org/symbolic-links.html). Instead, we need to just copy the files, and add a note at the top of them to keep them in sync, and to remove the .txt version once we have a min ver of meson 1.1. (Annoying silly filename changes causing unnecessary maintenance!)

Yes, I noticed that on TC. Unfortunately copying the file doesn't work since then meson complains:

meson.build:8:0: ERROR: meson.options and meson_options.txt both exist, but are not the same file.

I'll close this PR and implement a different approach.

@mcdurdin
Copy link
Copy Markdown
Member

mcdurdin commented Nov 10, 2025

Yes, I noticed that on TC. Unfortunately copying the file doesn't work since then meson complains:

meson.build:8:0: ERROR: meson.options and meson_options.txt both exist, but are not the same file.

Argh, seriously meson?! What a pain!

ermshiperete added a commit that referenced this pull request Nov 10, 2025
Meson 1.1 changed the name of the options file from `meson_options.txt`
to `meson.options`. Currently we're stuck with Meson 1.0 as minimum
Meson version because we still support Ubuntu 22.04 Jammy, but on some
machines a newer version of meson gets installed which causes the
options to be ignored.

The first attempt to simply symlink or copy `meson_options.txt` to
`meson.options` failed because git on Windows doesn't support symlinks
by default, and Meson complains if it finds two options files (#15127).

Fortunately not having an options file is only a problem for Core where
we have one option in the options file that defaults to true. The solution
implemented in this change is to always pass the option to Meson.

Test-bot: skip
@ermshiperete
Copy link
Copy Markdown
Contributor Author

Replaced by #15131

@github-project-automation github-project-automation bot moved this from Todo to Done in Keyman Nov 10, 2025
ermshiperete added a commit that referenced this pull request Nov 11, 2025
maint(core): fix option defaults for Meson >= 1.1

Meson 1.1 changed the name of the options file from `meson_options.txt` to `meson.options`. Currently we're stuck with Meson 1.0 as minimum Meson version because we still support Ubuntu 22.04 Jammy, but on some machines a newer version of meson gets installed which causes the options to be ignored.

The first attempt to simply symlink or copy `meson_options.txt` to `meson.options` failed because git on Windows doesn't support symlinks by default, and Meson complains if it finds two options files (#15127).

Fortunately not having an options file is only a problem for Core where we have one option in the options file that defaults to true. The solution implemented in this change is to always pass the option to Meson.
ermshiperete added a commit that referenced this pull request Nov 12, 2025
Meson 1.1 changed the name of the options file from `meson_options.txt`
to `meson.options`. Currently we're stuck with Meson 1.0 as minimum
Meson version because we still support Ubuntu 22.04 Jammy, but on some
machines a newer version of meson gets installed which causes the
options to be ignored.

The first attempt to simply symlink or copy `meson_options.txt` to
`meson.options` failed because git on Windows doesn't support symlinks
by default, and Meson complains if it finds two options files (#15127).

Fortunately not having an options file is only a problem for Core where
we have one option in the options file that defaults to true. The solution
implemented in this change is to always pass the option to Meson.

Cherry-pick-of: #15131
Test-bot: skip
ermshiperete added a commit that referenced this pull request Nov 13, 2025
…options

Meson 1.1 changed the name of the options file from `meson_options.txt` to `meson.options`. Currently we're stuck with Meson 1.0 as minimum Meson version because we still support Ubuntu 22.04 Jammy, but on some machines a newer version of meson gets installed which causes the options to be ignored.

The first attempt to simply symlink or copy `meson_options.txt` to `meson.options` failed because git on Windows doesn't support symlinks by default, and Meson complains if it finds two options files (#15127).

Fortunately not having an options file is only a problem for Core where we have one option in the options file that defaults to true. The solution implemented in this change is to always pass the option to Meson.

Cherry-pick-of: #15131
@ermshiperete ermshiperete deleted the maint/core/wasmtests branch November 20, 2025 08:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core/ Keyman Core developer/ linux/engine/ linux/ maint Maintenance work -- continuous integration, build scripts, infrastructure

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

2 participants