Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[vcpkg-tool-meson] Update meson to a more recent version #28084

Merged
merged 123 commits into from
Mar 11, 2024

Conversation

Neumann-A
Copy link
Contributor

@Neumann-A Neumann-A commented Nov 30, 2022

blocked by mesonbuild/meson#11143
Fixes #32966

github-actions[bot]
github-actions bot previously approved these changes Nov 30, 2022
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

You have modified or added at least one portfile where deprecated functions are used.

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)
vcpkg_extract_source_archive_ex -> vcpkg_extract_source_archive
vcpkg_build_msbuild -> vcpkg_install_msbuild
vcpkg_copy_tool_dependencies -> vcpkg_copy_tools
vcpkg_apply_patches should be replaced by the PATCHES arguments to the "extract" helpers (e.g. vcpkg_from_github())

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/vcpkg-tool-meson/portfile.cmake

@JonLiu1993 JonLiu1993 changed the title Update meson to 0.64.1 [vcpkg-tool-meson] Update meson to 0.64.1 Dec 1, 2022
@JonLiu1993 JonLiu1993 added the category:port-update The issue is with a library, which is requesting update new revision label Dec 1, 2022
@JonLiu1993
Copy link
Member

@Neumann-A, Thanks for your pr, This is ci error log,
Please take a view:

Compiler stderr:
 testfile.c
D:\buildtrees\gobject-introspection\x64-windows-dbg\meson-private\tmpp52iajuj\testfile.c(4): fatal error C1189: #error:  "Header 'unistd.h' could not be found"

Has header "unistd.h" : NO 
Could not find Python3 library 'D:\\downloads\\tools\\python\\python-3.10.7-x64\\libs\\python310.lib'

..\src\spection-1-c68dee862a.clean\giscanner\meson.build:112:0: ERROR: Python dependency not found

@Neumann-A
Copy link
Contributor Author

Yeah. I probably need to replace mesons python module with the one from 0.63.0.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

PRs must add only one version and must not modify any published versions

When making any changes to a library, the version or port-version in vcpkg.json or CONTROL must be modified.

error: checked-in files for vcpkg-tool-meson have changed but the version was not updated
version: 0.64.1
old SHA: 7ac7f928585a6a56f706b7a829e768793555d2c2
new SHA: c4a987b252ff3ad4b6be972a1b93246d7a7a3c8e
Did you remember to update the version or port version?
Use --overwrite-version to bypass this check
***No files were updated***

You have modified or added at least one portfile where deprecated functions are used.

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)
vcpkg_extract_source_archive_ex -> vcpkg_extract_source_archive
vcpkg_build_msbuild -> vcpkg_install_msbuild
vcpkg_copy_tool_dependencies -> vcpkg_copy_tools
vcpkg_apply_patches should be replaced by the PATCHES arguments to the "extract" helpers (e.g. vcpkg_from_github())

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/vcpkg-tool-meson/portfile.cmake

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

PRs must add only one version and must not modify any published versions

When making any changes to a library, the version or port-version in vcpkg.json or CONTROL must be modified.

error: checked-in files for vcpkg-tool-meson have changed but the version was not updated
version: 0.64.1
old SHA: 7ac7f928585a6a56f706b7a829e768793555d2c2
new SHA: 6ec7ffe977e5aafd17de3579fd0a718e52ba0f77
Did you remember to update the version or port version?
Use --overwrite-version to bypass this check
***No files were updated***

You have modified or added at least one portfile where deprecated functions are used.

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)
vcpkg_extract_source_archive_ex -> vcpkg_extract_source_archive
vcpkg_build_msbuild -> vcpkg_install_msbuild
vcpkg_copy_tool_dependencies -> vcpkg_copy_tools
vcpkg_apply_patches should be replaced by the PATCHES arguments to the "extract" helpers (e.g. vcpkg_from_github())

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/vcpkg-tool-meson/portfile.cmake

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

PRs must add only one version and must not modify any published versions

When making any changes to a library, the version or port-version in vcpkg.json or CONTROL must be modified.

error: checked-in files for vcpkg-tool-meson have changed but the version was not updated
version: 0.64.1
old SHA: 7ac7f928585a6a56f706b7a829e768793555d2c2
new SHA: 5e0f534af06cc868ce4d52f30c53c4c1948a5995
Did you remember to update the version or port version?
Use --overwrite-version to bypass this check
***No files were updated***

You have modified or added at least one portfile where deprecated functions are used.

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)
vcpkg_extract_source_archive_ex -> vcpkg_extract_source_archive
vcpkg_build_msbuild -> vcpkg_install_msbuild
vcpkg_copy_tool_dependencies -> vcpkg_copy_tools
vcpkg_apply_patches should be replaced by the PATCHES arguments to the "extract" helpers (e.g. vcpkg_from_github())

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/vcpkg-tool-meson/portfile.cmake

@Neumann-A Neumann-A closed this Dec 3, 2022
@Neumann-A Neumann-A reopened this Dec 5, 2022
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

PRs must add only one version and must not modify any published versions

When making any changes to a library, the version or port-version in vcpkg.json or CONTROL must be modified.

error: checked-in files for vcpkg-tool-meson have changed but the version was not updated
version: 0.64.1
old SHA: 7ac7f928585a6a56f706b7a829e768793555d2c2
new SHA: ace838fbbee3317189c196ae59dc7db59c1ae1cd
Did you remember to update the version or port version?
Use --overwrite-version to bypass this check
***No files were updated***

You have modified or added at least one portfile where deprecated functions are used.

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)
vcpkg_extract_source_archive_ex -> vcpkg_extract_source_archive
vcpkg_build_msbuild -> vcpkg_install_msbuild
vcpkg_copy_tool_dependencies -> vcpkg_copy_tools
vcpkg_apply_patches should be replaced by the PATCHES arguments to the "extract" helpers (e.g. vcpkg_from_github())

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/vcpkg-tool-meson/portfile.cmake

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

PRs must add only one version and must not modify any published versions

When making any changes to a library, the version or port-version in vcpkg.json or CONTROL must be modified.

error: checked-in files for vcpkg-tool-meson have changed but the version was not updated
version: 0.64.1
old SHA: 7ac7f928585a6a56f706b7a829e768793555d2c2
new SHA: ace838fbbee3317189c196ae59dc7db59c1ae1cd
Did you remember to update the version or port version?
Use --overwrite-version to bypass this check
***No files were updated***

You have modified or added at least one portfile where deprecated functions are used.

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)
vcpkg_extract_source_archive_ex -> vcpkg_extract_source_archive
vcpkg_build_msbuild -> vcpkg_install_msbuild
vcpkg_copy_tool_dependencies -> vcpkg_copy_tools
vcpkg_apply_patches should be replaced by the PATCHES arguments to the "extract" helpers (e.g. vcpkg_from_github())

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/vcpkg-tool-meson/portfile.cmake

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

PRs must add only one version and must not modify any published versions

When making any changes to a library, the version or port-version in vcpkg.json or CONTROL must be modified.

error: checked-in files for vcpkg-tool-meson have changed but the version was not updated
version: 0.64.1
old SHA: 7ac7f928585a6a56f706b7a829e768793555d2c2
new SHA: ace838fbbee3317189c196ae59dc7db59c1ae1cd
Did you remember to update the version or port version?
Use --overwrite-version to bypass this check
***No files were updated***

You have modified or added at least one portfile where deprecated functions are used.

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)
vcpkg_extract_source_archive_ex -> vcpkg_extract_source_archive
vcpkg_build_msbuild -> vcpkg_install_msbuild
vcpkg_copy_tool_dependencies -> vcpkg_copy_tools
vcpkg_apply_patches should be replaced by the PATCHES arguments to the "extract" helpers (e.g. vcpkg_from_github())

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/vcpkg-tool-meson/portfile.cmake

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

PRs must add only one version and must not modify any published versions

When making any changes to a library, the version or port-version in vcpkg.json or CONTROL must be modified.

error: checked-in files for gobject-introspection have changed but the version was not updated
version: 1.72.0#1
old SHA: a74d57d679dac22f5b60c5b7da97cad7ecb3d0fb
new SHA: f5f4967c650684935318e497fdb139ac97798eb5
Did you remember to update the version or port version?
Use --overwrite-version to bypass this check
***No files were updated***
error: checked-in files for vcpkg-tool-meson have changed but the version was not updated
version: 0.64.1
old SHA: 7ac7f928585a6a56f706b7a829e768793555d2c2
new SHA: ace838fbbee3317189c196ae59dc7db59c1ae1cd
Did you remember to update the version or port version?
Use --overwrite-version to bypass this check
***No files were updated***

You have modified or added at least one portfile where deprecated functions are used.

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)
vcpkg_extract_source_archive_ex -> vcpkg_extract_source_archive
vcpkg_build_msbuild -> vcpkg_install_msbuild
vcpkg_copy_tool_dependencies -> vcpkg_copy_tools
vcpkg_apply_patches should be replaced by the PATCHES arguments to the "extract" helpers (e.g. vcpkg_from_github())

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/gobject-introspection/portfile.cmake
  • ports/vcpkg-tool-meson/portfile.cmake

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

This is a new experimental fast check for PR issues. Please let us know if this bot is helpful!

PRs must add only one version and must not modify any published versions

When making any changes to a library, the version or port-version in vcpkg.json or CONTROL must be modified.

error: checked-in files for gobject-introspection have changed but the version was not updated
version: 1.72.0#1
old SHA: a74d57d679dac22f5b60c5b7da97cad7ecb3d0fb
new SHA: f5f4967c650684935318e497fdb139ac97798eb5
Did you remember to update the version or port version?
Use --overwrite-version to bypass this check
***No files were updated***
error: checked-in files for vcpkg-tool-meson have changed but the version was not updated
version: 0.64.1
old SHA: 7ac7f928585a6a56f706b7a829e768793555d2c2
new SHA: db61dbdf4452490adc8543970ef45b0f537b8d30
Did you remember to update the version or port version?
Use --overwrite-version to bypass this check
***No files were updated***

You have modified or added at least one portfile where deprecated functions are used.

If you feel able to do so, please consider migrating them to the new functions:
vcpkg_install_cmake -> vcpkg_cmake_install (from port vcpkg-cmake)
vcpkg_build_cmake -> vcpkg_cmake_build (from port vcpkg-cmake)
vcpkg_configure_cmake -> vcpkg_cmake_configure (Please remove the option PREFER_NINJA) (from port vcpkg-cmake)
vcpkg_fixup_cmake_targets -> vcpkg_cmake_config_fixup (from port vcpkg-cmake-config)
vcpkg_extract_source_archive_ex -> vcpkg_extract_source_archive
vcpkg_build_msbuild -> vcpkg_install_msbuild
vcpkg_copy_tool_dependencies -> vcpkg_copy_tools
vcpkg_apply_patches should be replaced by the PATCHES arguments to the "extract" helpers (e.g. vcpkg_from_github())

In the ports that use the new function, you have to add the corresponding dependencies:

{
  "name": "vcpkg-cmake",
  "host": true
},
{
  "name": "vcpkg-cmake-config",
  "host": true
}

The following files are affected:

  • ports/gobject-introspection/portfile.cmake
  • ports/vcpkg-tool-meson/portfile.cmake

@Neumann-A Neumann-A changed the title [vcpkg-tool-meson] Update meson to 1.3.1 [vcpkg-tool-meson] Update meson to a more recent version Feb 29, 2024
@Neumann-A
Copy link
Contributor Author

I just read white noise here. No signal from the MS team. @JonLiu1993 can you mark this reviewed so that the main team has to look at it again or at least give advice how to move it forward since it is activly blocking progress.

JonLiu1993
JonLiu1993 previously approved these changes Mar 1, 2024
@JonLiu1993 JonLiu1993 added the info:reviewed Pull Request changes follow basic guidelines label Mar 1, 2024
@vicroms
Copy link
Member

vicroms commented Mar 2, 2024

@Neumann-A

Thanks for the patience! We are aware that this has been on a holding pattern for way too long. Given that this PR is not introducing a new method of acquiring Meson and is only updating what we already have, we feel that it makes no sense to keep delaying it in wait of a tools RFC.

We will be merging this PR after reviewing all the changes and patches.

@nlogozzo
Copy link
Contributor

nlogozzo commented Mar 7, 2024

Hi, any update?

vicroms
vicroms previously approved these changes Mar 8, 2024
@Neumann-A Neumann-A dismissed stale reviews from vicroms and JonLiu1993 via 5df1477 March 8, 2024 23:23
@@ -7,7 +7,7 @@ set(version_command --version)
set(extra_search_args EXACT_VERSION_MATCH)
if(EXISTS "${CURRENT_HOST_INSTALLED_DIR}/share/meson/version.txt")
file(READ "${CURRENT_HOST_INSTALLED_DIR}/share/meson/version.txt" program_version)
set(paths_to_search "${CURRENT_HOST_INSTALLED_DIR}/tools/meson")
set(paths_to_search "${DOWNLOADS}/tools/meson-${program_version};${CURRENT_HOST_INSTALLED_DIR}/tools/meson")
Copy link
Member

Choose a reason for hiding this comment

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

I note that we would not be OK with hijacking vcpkg_find_acquire_program like this in the future but it is OK in this PR. No change requested here, just noting it for any potential future arguments :)

BillyONeal
BillyONeal previously approved these changes Mar 9, 2024
Copy link
Member

@BillyONeal BillyONeal left a comment

Choose a reason for hiding this comment

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

LGTM as long as we are OK with taking the same function name like that.

scripts/buildsystems/meson/meson.template.in Outdated Show resolved Hide resolved
@dg0yt dg0yt mentioned this pull request Mar 9, 2024
7 tasks
@vipcxj
Copy link
Contributor

vipcxj commented Mar 9, 2024

I think vcpkg should provide a mechanism to globally set the meson version to be used, and each port can individually specify the meson version it needs, so that when a port needs a higher version of meson, it only needs to add this version of meson and specify the port to use it, which won't affect any of the older ports.
Specifically, when relying on vcpkg-tool-meson as a host, if the version is not specified, vcpkg should choose a specific reliable version instead of the latest version. When a port needs to use a newer meson, just specify the version number in the dependency. And for host dependencies like meson, the ontology must be allowed to have different versions at the same time. Different ports can use different mesons.

@BillyONeal
Copy link
Member

@vipcxj This is a downside of managing tools like this with ports but we don't have a technical solution that allows it right now. As a port is still an improvement over how vcpkg_find_acquire_program works, where you get the version you get and you don't get upset.

@BillyONeal BillyONeal merged commit a664e41 into microsoft:master Mar 11, 2024
16 checks passed
@Neumann-A Neumann-A deleted the update_meson_to_0.64.1 branch March 11, 2024 21:10
@cenit
Copy link
Contributor

cenit commented Mar 12, 2024

all meson ports that are using a manifest and an older baseline now fail.
The error is always along the lines of

..\src\conf-2.1.0-7b1cf1fe7f.clean\meson.build:1:0: ERROR: Value "plain" (of type "string") for combo option "Optimization level" is not one of the choices. Possible choices are (as string): "0", "g", "1", "2", "3", "s".

it errors out quite early.

Updating the baseline to the latest vcpkg commit after this merge fixes things, but this is quite undesirable. Note that in the config-triplet-meson-log.txt.log the version is still
The Meson build system
Version: 0.62.1

@cenit
Copy link
Contributor

cenit commented Mar 12, 2024

@BillyONeal @Neumann-A

@cenit
Copy link
Contributor

cenit commented Mar 12, 2024

an easy test would be to build just the very basic port "pkgconf" using vcpkg baseline c9140a3 but vcpkg base repo fully up to date

@Neumann-A
Copy link
Contributor Author

Neumann-A commented Mar 12, 2024

That means that the meson in vcpkg_find_acquire_program needs an update to 0.63.

Just remove the conflicting options. Was probably originally ment for 0.64.1

@Neumann-A
Copy link
Contributor Author

@cenit try #37396

@petersteneteg
Copy link
Contributor

#37396 worked for me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:port-update The issue is with a library, which is requesting update new revision category:tool-update The issue is with build tool or build script, which requires update or should be executed correctly info:reviewed Pull Request changes follow basic guidelines
Projects
None yet