Bug 1221349 - windows:mingw:win{32|64}/mingw{32|64}-qt6-xxx missing
Summary: windows:mingw:win{32|64}/mingw{32|64}-qt6-xxx missing
Status: NEW
Alias: None
Product: openSUSE.org
Classification: openSUSE
Component: 3rd party software (show other bugs)
Version: unspecified
Hardware: Other Other
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: E-mail List
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-03-13 11:56 UTC by Ralf Habacker
Modified: 2024-04-30 13:45 UTC (History)
3 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ralf Habacker 2024-03-13 11:56:38 UTC
Qt6.6 (https://wiki.qt.io/Qt_6.6_Release) is the actual version of the Qt framework. It would be nice to have MinGW packages for this release.

The special/problem with Qt6 is that it requires exactly the same version of the native packages, as the native tools are used from there. The packages built for Tumbleweed will therefore not be buildable on Leap 15.5 and 6, as Qt 6.4 is used there by default. Additionally, the MinGW qt6 packages need to be updated when Upstream changes the qt6 version to get the exact version. 

To fix this, the required qt 6.6 packages must be available independently from the distribution packages to build the MinGW qt 6 packages.

According to my research and testing, these are: 

qt6-declarative   
qt6-languageserver
qt6-macros        
qt6-shadertools   
qt6-tools         
qt6-base          

These packages can be used to build corresponding mingw64 and mingw32 variants, but must not be installed in the normal prefix to avoid conflicts with the standard qt6 packages.

Does anyone have suggestions for an appropriate prefix ?
Comment 1 Fridrich Strba 2024-03-13 11:59:09 UTC
This kind of stuff was always handled in the windows:mingw toplevel repository where the appropriate package can be. Both windows:mingw:win32 and windows:mingw:win64 use the repository for tools and so on. So, just upgrade them there and you should be fine.
Comment 2 Fridrich Strba 2024-03-13 12:00:42 UTC
(In reply to Ralf Habacker from comment #0)
> These packages can be used to build corresponding mingw64 and mingw32
> variants, but must not be installed in the normal prefix to avoid conflicts
> with the standard qt6 packages.
> 
> Does anyone have suggestions for an appropriate prefix ?

Actually, you can upgrade them just correctly there, just don't add that top-level project to your repos for installation and you should not have problem with it.
Comment 3 Ralf Habacker 2024-03-14 11:21:27 UTC
(In reply to Fridrich Strba from comment #1)
> This kind of stuff was always handled in the windows:mingw toplevel
> repository where the appropriate package can be. Both windows:mingw:win32
> and windows:mingw:win64 use the repository for tools and so on. So, just
> upgrade them there and you should be fine.

For building mingw-Qt6 packages, that would work.

(In reply to Fridrich Strba from comment #2)

> Actually, you can upgrade them just correctly there, just don't add that
> top-level project to your repos for installation and you should not have
> problem with it.

With Qt6, the native packages are not only used for building, but are needed directly for development packages, for example.

$ sudo zypper ar https://download.opensuse.org/repositories/home:/rhabacker:/branches:/windows:/mingw:/win64:/Qt66/15.5/home:rhabacker:branches:windows:mingw:win64:Qt66.repo
$ sudo zypper install mingw64-qt6-base-devel
Service 'NVIDIA' is updated.
Service 'openSUSE' is updated.
Repository data is loaded...
Installed packages are read...
Package dependencies are resolved...

Problem: nothing provides 'qt6-base-common-devel = 6.6.2', which is required by the mingw64-qt6-base-devel-6.6.2-lp155.3.1.noarch to be installed
 Solution 1: Do not install mingw64-qt6-base-devel-6.6.2-lp155.3.1.noarch
 Solution 2: break mingw64-qt6-base-devel-6.6.2-lp155.3.1.noarch by ignoring some dependencies

Choose from the above solutions by number or break (a)b [1/2/a/d/?] (a): 

This means that suitable native packages must be installable
Comment 4 Ralf Habacker 2024-03-14 11:27:17 UTC
(In reply to Ralf Habacker from comment #3)
> This means that suitable native packages must be installable

If I simulate this: 

$ sudo zypper ar https://download.opensuse.org/repositories/home:/rhabacker:/branches:/windows:/mingw:/win64:/Qt66:/native/15.5/home:rhabacker:branches:windows:mingw:win64:Qt66:native.repo
$ sudo zypper install mingw64-qt6-base-devel
Service 'NVIDIA' is updated.
Service 'openSUSE' is updated.
Repository data is loaded...
Installed packages are read...
Package dependencies are resolved...

Problem: the mingw64-qt6-base-devel-6.6.2-lp155.3.1.noarch to be installed requires 'qt6-base-common-devel = 6.6.2', but this requirement cannot be provided
  Uninstallable providers: qt6-base-common-devel-6.6.2-lp155.109.2.x86_64[home_rhabacker_branches_windows_mingw_win64_Qt66_native]
 Solution 1: The following actions are executed:
  install qt6-base-common-devel-6.6.2-lp155.109.2.x86_64 from vendor obs://build.opensuse.org/home:rhabacker
  and replace qt6-base-common-devel-6.4.2-150500.3.14.1.x86_64 from vendor SUSE LLC <https://www.suse.com/>
  install qt6-base-devel-6.6.2-lp155.109.2.noarch from manufacturer obs://build.opensuse.org/home:rhabacker
...

Installing a mingwxx-qt6 development package would replace the entire qt6 installation and could destroy the system.

Therefore I wrote: 

(In reply to Ralf Habacker from comment #0)
> These packages can be used to build corresponding mingw64 and mingw32
> variants, but must not be installed in the normal prefix to avoid conflicts
> with the standard qt6 packages.