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

Rebuild for icu 75 #282

Conversation

regro-cf-autotick-bot
Copy link
Contributor

This PR has been triggered in an effort to update icu75.

Notes and instructions for merging this PR:

  1. Please merge the PR only after the tests have passed.
  2. Feel free to push to the bot's branch to update this PR if needed.

Please note that if you close this PR we presume that the feedstock has been rebuilt, so if you are going to perform the rebuild yourself don't close this PR until the your rebuild has been merged.


If this PR was opened in error or needs to be updated please add the bot-rerun label to this PR. The bot will close this PR and schedule another one. If you do not have permissions to add this label, you can use the phrase @conda-forge-admin, please rerun bot in a PR comment to have the conda-forge-admin add it for you.

This PR was created by the regro-cf-autotick-bot. The regro-cf-autotick-bot is a service to automatically track the dependency graph, migrate packages, and propose package version updates for conda-forge. Feel free to drop us a line if there are any issues! This PR was generated by - please use this URL for debugging.

@conda-forge-webservices
Copy link
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.

@hmaarrfk
Copy link
Contributor

@conda-forge-admin please restart cis
@conda-forge-admin please rerender

conda-forge.yml Outdated Show resolved Hide resolved
conda-forge.yml Outdated Show resolved Hide resolved
@hmaarrfk
Copy link
Contributor

@conda-forge-admin please rerender

@hmaarrfk
Copy link
Contributor

it seems that we need to update to c++17 for windows. any clue on how?

@hmaarrfk
Copy link
Contributor

i'm not sure why it decided to try to build the map stuff with the "static" implemtation.... the main branch does not use the "static" flag.

@traversaro
Copy link
Contributor

@conda-forge-admin please restart ci

@hmaarrfk
Copy link
Contributor

@conda-forge-admin please rerender

@hmaarrfk
Copy link
Contributor

i think OSX can be resolved, but windows you'll have trouble with....

@traversaro
Copy link
Contributor

traversaro commented Sep 13, 2024

i think OSX can be resolved, but windows you'll have trouble with....

Before looking into that, I was wondering if it is tricky to fix just on Windows, we could consider disabling icu on Windows? From what understand from:

qt can build without icu, and that is actually the behavior used by default in official binaries on Windows since a long time (some qt dev in the bug tracker as the Qt+Windows+ICU combination as "unusual", see https://bugreports.qt.io/browse/QTBUG-77120?focusedId=470037&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-470037).

Also from the code, the ABI is not affected, see:

@traversaro
Copy link
Contributor

Anyhow, the actual failing test on Windows seems:

2024-09-13T15:34:01.7770975Z > jom 1.1.3 - empower your cores
2024-09-13T15:34:01.7821878Z > 	cl -c -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -O2 -MD -W0 -EHsc -DUNICODE -D_UNICODE -DWIN32 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -DWIN64 -DNDEBUG -I. -IC:\bld\qt-main_1726240212609\_h_env\Library\include -IC:\bld\qt-main_1726240212609\work\qtbase\mkspecs\win32-msvc -Fo @C:\Users\VSSADM~1\AppData\Local\Temp\main.obj.6532.0.jom
2024-09-13T15:34:01.7831182Z > main.cpp
2024-09-13T15:34:01.7868772Z > C:\bld\qt-main_1726240212609\_h_env\Library\include\unicode/localpointer.h(561): error C3533: a parameter cannot have a type that contains 'auto'
2024-09-13T15:34:01.7880904Z > C:\bld\qt-main_1726240212609\_h_env\Library\include\unicode/localpointer.h(561): note: 'auto' in non-type template parameters requires at least '/std:c++17'
2024-09-13T15:34:01.7933243Z > C:\bld\qt-main_1726240212609\_h_env\Library\include\unicode/uset.h(358): error C2975: 'closeFunction': invalid template argument for 'icu_75::internal::LocalOpenPointer', expected compile-time constant expression
2024-09-13T15:34:01.7967236Z > C:\bld\qt-main_1726240212609\_h_env\Library\include\unicode/localpointer.h(561): note: see declaration of 'closeFunction'
2024-09-13T15:34:01.7973658Z > C:\bld\qt-main_1726240212609\_h_env\Library\include\unicode/unorm2.h(286): error C2975: 'closeFunction': invalid template argument for 'icu_75::internal::LocalOpenPointer', expected compile-time constant expression
2024-09-13T15:34:01.8246013Z > C:\bld\qt-main_1726240212609\_h_env\Library\include\unicode/localpointer.h(561): note: see declaration of 'closeFunction'
2024-09-13T15:34:01.8253164Z > C:\bld\qt-main_1726240212609\_h_env\Library\include\unicode/uenum.h(69): error C2975: 'closeFunction': invalid template argument for 'icu_75::internal::LocalOpenPointer', expected compile-time constant expression
2024-09-13T15:34:01.8272513Z > C:\bld\qt-main_1726240212609\_h_env\Library\include\unicode/localpointer.h(561): note: see declaration of 'closeFunction'
2024-09-13T15:34:01.8283753Z > C:\bld\qt-main_1726240212609\_h_env\Library\include\unicode/ucol.h(553): error C2975: 'closeFunction': invalid template argument for 'icu_75::internal::LocalOpenPointer', expected compile-time constant expression
2024-09-13T15:34:01.8286270Z > C:\bld\qt-main_1726240212609\_h_env\Library\include\unicode/localpointer.h(561): note: see declaration of 'closeFunction'
2024-09-13T15:34:01.8288413Z > jom: C:\bld\qt-main_1726240212609\work\b\config.tests\icu\Makefile [main.obj] Error 2

@hmaarrfk
Copy link
Contributor

disabling ICU might indeed be a way out....

@traversaro
Copy link
Contributor

Anyhow, the actual failing test on Windows seems:

2024-09-13T15:34:01.7770975Z > jom 1.1.3 - empower your cores
2024-09-13T15:34:01.7821878Z > 	cl -c -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -O2 -MD -W0 -EHsc -DUNICODE -D_UNICODE -DWIN32 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -DWIN64 -DNDEBUG -I. -IC:\bld\qt-main_1726240212609\_h_env\Library\include -IC:\bld\qt-main_1726240212609\work\qtbase\mkspecs\win32-msvc -Fo @C:\Users\VSSADM~1\AppData\Local\Temp\main.obj.6532.0.jom
2024-09-13T15:34:01.7831182Z > main.cpp
2024-09-13T15:34:01.7868772Z > C:\bld\qt-main_1726240212609\_h_env\Library\include\unicode/localpointer.h(561): error C3533: a parameter cannot have a type that contains 'auto'
2024-09-13T15:34:01.7880904Z > C:\bld\qt-main_1726240212609\_h_env\Library\include\unicode/localpointer.h(561): note: 'auto' in non-type template parameters requires at least '/std:c++17'
2024-09-13T15:34:01.7933243Z > C:\bld\qt-main_1726240212609\_h_env\Library\include\unicode/uset.h(358): error C2975: 'closeFunction': invalid template argument for 'icu_75::internal::LocalOpenPointer', expected compile-time constant expression
2024-09-13T15:34:01.7967236Z > C:\bld\qt-main_1726240212609\_h_env\Library\include\unicode/localpointer.h(561): note: see declaration of 'closeFunction'
2024-09-13T15:34:01.7973658Z > C:\bld\qt-main_1726240212609\_h_env\Library\include\unicode/unorm2.h(286): error C2975: 'closeFunction': invalid template argument for 'icu_75::internal::LocalOpenPointer', expected compile-time constant expression
2024-09-13T15:34:01.8246013Z > C:\bld\qt-main_1726240212609\_h_env\Library\include\unicode/localpointer.h(561): note: see declaration of 'closeFunction'
2024-09-13T15:34:01.8253164Z > C:\bld\qt-main_1726240212609\_h_env\Library\include\unicode/uenum.h(69): error C2975: 'closeFunction': invalid template argument for 'icu_75::internal::LocalOpenPointer', expected compile-time constant expression
2024-09-13T15:34:01.8272513Z > C:\bld\qt-main_1726240212609\_h_env\Library\include\unicode/localpointer.h(561): note: see declaration of 'closeFunction'
2024-09-13T15:34:01.8283753Z > C:\bld\qt-main_1726240212609\_h_env\Library\include\unicode/ucol.h(553): error C2975: 'closeFunction': invalid template argument for 'icu_75::internal::LocalOpenPointer', expected compile-time constant expression
2024-09-13T15:34:01.8286270Z > C:\bld\qt-main_1726240212609\_h_env\Library\include\unicode/localpointer.h(561): note: see declaration of 'closeFunction'
2024-09-13T15:34:01.8288413Z > jom: C:\bld\qt-main_1726240212609\work\b\config.tests\icu\Makefile [main.obj] Error 2

Ok, I think I understood the nature of the error here. qmake is testing for existince of icu by compiling a code snippet, but for some reason the code snippet is compiled with C++11 (not supported by icu 75), while the rest of the build actually compiles with c++17. Probably the most logical change is to tell qmake to compile the snippet with c++17, but as qt actually just uses the C api of icu, we can just disable the C++ api in icu by defining the U_SHOW_CPLUSPLUS_API macro to 0, I did this in https://github.com/conda-forge/qt-main-feedstock/blob/75ae665ce2cdf6b2f63c89eda23ccdc0c0c2cc01/recipe/patches/0019-do-not-use-cxx-icu-api-in-tests.patch and the Windows CI is not blocking anymore.

@traversaro
Copy link
Contributor

Probably the most logical change is to tell qmake to compile the snippet with c++17

This traversaro/qtbase@b022f7b should done exactly test, but I still did not test it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants