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 packages for Qt 6.8 #22298

Merged
merged 4 commits into from
Oct 25, 2024
Merged

rebuild packages for Qt 6.8 #22298

merged 4 commits into from
Oct 25, 2024

Conversation

mmuetzel
Copy link
Collaborator

Rebuild the packages for which the package grokker reported an ABI incompatibility with Qt 6.8.

@mmuetzel
Copy link
Collaborator Author

Oops. pyside6 actually needs an update. See #22300.

@mmuetzel mmuetzel marked this pull request as draft October 25, 2024 12:21
@Biswa96
Copy link
Member

Biswa96 commented Oct 25, 2024

Thanks, I was actually planning to do this after pyside.

The boost library `libboost_system-mt.dll` was an empty dummy that is no
longer being distributed since boost is built with cmake (see msys2#22040).

Configuration fails if no `boost-system` library is found. Work around
that configuration error by pointing to an existing library in the
respective configure flag. Use a library that is going to be used anyway.
@mmuetzel
Copy link
Collaborator Author

Oops. Sorry if I messed with your plans.

I have the necessary patches for mkvtoolnik ready and could push them here if you don't prefer to do the update yourself.

@Biswa96
Copy link
Member

Biswa96 commented Oct 25, 2024

Please go ahead with this PR. I can not compile the programs in my old machine anyway.

Building the unit tests fails with an error related to
`std::filesystem`.
Skip building them even if gtest happens to be installed.
@lazka
Copy link
Member

lazka commented Oct 25, 2024

oh, I missed that again, sorry

@mmuetzel
Copy link
Collaborator Author

I should have waited after I had built everything locally. But "what could go wrong on some simple rebuilds"? 😉

Building qt-creator on MINGW64 fails with this error for me locally:

In file included from D:/repo/MSYS2/MINGW-packages/mingw-w64-qt-creator/src/qt-creator-opensource-src-14.0.1/src/plugins/appstatisticsmonitor/idataprovider.cpp:20:
C:/msys64/mingw64/include/psapi.h: At global scope:
C:/msys64/mingw64/include/psapi.h:166:28: error: expected ')' before '*' token
  166 |   typedef WINBOOL (CALLBACK *PENUM_PAGE_FILE_CALLBACKW) (LPVOID pContext,PENUM_PAGE_FILE_INFORMATION pPageFileInfo,LPCWSTR lpFilename);
      |                   ~        ^~
      |                            )
C:/msys64/mingw64/include/psapi.h:167:28: error: expected ')' before '*' token
  167 |   typedef WINBOOL (CALLBACK *PENUM_PAGE_FILE_CALLBACKA) (LPVOID pContext,PENUM_PAGE_FILE_INFORMATION pPageFileInfo,LPCSTR lpFilename);
      |                   ~        ^~
      |                            )
C:/msys64/mingw64/include/psapi.h:169:34: error: 'PENUM_PAGE_FILE_CALLBACKW' was not declared in this scope; did you mean 'PENUM_PAGE_FILE_CALLBACK'?
  169 |   WINBOOL WINAPI EnumPageFilesW (PENUM_PAGE_FILE_CALLBACKW pCallBackRoutine,LPVOID pContext);
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~
      |                                  PENUM_PAGE_FILE_CALLBACK
C:/msys64/mingw64/include/psapi.h:169:84: error: expected primary-expression before 'pContext'
  169 |   WINBOOL WINAPI EnumPageFilesW (PENUM_PAGE_FILE_CALLBACKW pCallBackRoutine,LPVOID pContext);
      |                                                                                    ^~~~~~~~
C:/msys64/mingw64/include/psapi.h:169:92: error: expression list treated as compound expression in initializer [-fpermissive]
  169 |   WINBOOL WINAPI EnumPageFilesW (PENUM_PAGE_FILE_CALLBACKW pCallBackRoutine,LPVOID pContext);
      |                                                                                            ^
C:/msys64/mingw64/include/psapi.h:170:34: error: 'PENUM_PAGE_FILE_CALLBACKA' was not declared in this scope; did you mean 'PENUM_PAGE_FILE_CALLBACK'?
  170 |   WINBOOL WINAPI EnumPageFilesA (PENUM_PAGE_FILE_CALLBACKA pCallBackRoutine,LPVOID pContext);
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~
      |                                  PENUM_PAGE_FILE_CALLBACK
C:/msys64/mingw64/include/psapi.h:170:84: error: expected primary-expression before 'pContext'
  170 |   WINBOOL WINAPI EnumPageFilesA (PENUM_PAGE_FILE_CALLBACKA pCallBackRoutine,LPVOID pContext);
      |                                                                                    ^~~~~~~~
C:/msys64/mingw64/include/psapi.h:170:92: error: expression list treated as compound expression in initializer [-fpermissive]
  170 |   WINBOOL WINAPI EnumPageFilesA (PENUM_PAGE_FILE_CALLBACKA pCallBackRoutine,LPVOID pContext);
      |                                                                                            ^

Is that an issue with the MinGW headers? Or is it more likely that there is something wrong when they are including psapi.h? (It looks like CALLBACK is undefined.)

@Biswa96
Copy link
Member

Biswa96 commented Oct 25, 2024

Either CALLBACK is being undefined or redefined or used as an variable etc.

@mmuetzel
Copy link
Collaborator Author

If I copy the following (which I found in minwindef.h) close to the top of psapi.h, building succeeds:

#ifndef CALLBACK
#if defined(_ARM_)
#define CALLBACK
#else
#define CALLBACK __stdcall
#endif
#endif

@Biswa96
Copy link
Member

Biswa96 commented Oct 25, 2024

llvm had a similar issue llvm/llvm-project@54bff15

@mmuetzel
Copy link
Collaborator Author

Found the following in a header that is included in almost each of their compilation units (in qtcreator_pch.h):

// LLVM 12 comes with CALLBACK as a template argument
#undef CALLBACK

(That's probably to work around the issue that was fixed in LLVM with the patch you pointed out.)

I'll try if it builds correctly without that.

@mmuetzel
Copy link
Collaborator Author

mmuetzel commented Oct 25, 2024

But shouldn't psapi.h still be includable without other prior headers? I.e., shouldn't it get the definition of CALLBACK from somewhere?
I can't find how it would do that...

Edit: Maybe, it does need some other headers first. It's using a lot of other macros from the Windows API iiuc.

@mmuetzel
Copy link
Collaborator Author

mmuetzel commented Oct 25, 2024

Hu? It didn't fail in CI.
Maybe, that source file is only build if an optional feature is enabled? And I happen to have a package installed locally that enables that feature?

Edit: The change I mention a couple of comments above makes it build also for me locally. But if it isn't needed for the package as distributed, I'll just wait if the CI finishes successfully in all environments and push the PR as-is if it does.

@mmuetzel mmuetzel marked this pull request as ready for review October 25, 2024 15:50
@mmuetzel mmuetzel merged commit 14a9f46 into msys2:master Oct 25, 2024
8 checks passed
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