Bug 445248 - Using kirigami_package_breeze_icons on Windows results in failed INSTALL due to symlink to duplicate icons
Summary: Using kirigami_package_breeze_icons on Windows results in failed INSTALL due ...
Status: REOPENED
Alias: None
Product: Craft
Classification: Developer tools
Component: Blueprints (show other bugs)
Version: master
Platform: Microsoft Windows Microsoft Windows
: NOR normal
Target Milestone: ---
Assignee: Hannah von Reth
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-11-10 07:00 UTC by Javier O. Cordero Pérez (Cuperino)
Modified: 2022-07-07 14:03 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Javier O. Cordero Pérez (Cuperino) 2021-11-10 07:00:20 UTC
SUMMARY
Using the `kirigami_package_breeze_icons` CMake instruction on Windows results in INSTALL failing due to some icons being found duplicate by CMake while reading symlink.

Some of the conflicting icons include:
> go-next-symbolic, go-previous-symbolic, format-fill-color

Not listing some icons as part of `kirigami_package_breeze_icons`, such as the "format-fill-color" icon, will result in the conflict going away. Nevertheless, other icons, such as go-next-symbolic, create the conflict even if they are not listed to be imported. This results in an inability to use `kirigami_package_breeze_icons` on Windows. `kirigami_package_breeze_icons` continues to work fine for the macOS and Android platforms.

STEPS TO REPRODUCE
1. Create a Kirigami project
2. Add `kirigami_package_breeze_icons` call to the `CMakeLists.txt` file where resources are added.
3. Build and install the project on Windows.
(I'm using Craft to build the project on Windows. There, updating the package is enough to trigger the error because it occurs during CMake's install phase.)

OBSERVED RESULT
CMake fails to complete INSTALL due to being unable to read symlink because some icons were duplicated. Some of the duplicate icons are not listed by `kirigami_package_breeze_icons` thus making the conflict apparently impossible to avoid.

>CMake Error at build/cmake_install.cmake:153 (file):
>  file INSTALL cannot read symlink
>  "C:/CraftRoot/build/_/e31ae30d/build/breeze-icons/src/breeze-icons/icons/actions/22/format-fill-color.svg"
>  to duplicate at
>  "C:/CraftRoot/build/entity/project/image-RelWithDebInfo-main/CraftRoot/qml/org/kde/kirigami.2/icons/format-fill-color.svg":
>  File exists.
>Call Stack (most recent call first):
>  cmake_install.cmake:37 (include)

EXPECTED RESULT
Windows build completes INSTALL and shows appropriate icons when ran.

SOFTWARE/OS VERSIONS
Windows: Windows 10
KDE Frameworks Version: 5.83 - 5.87
Qt Version: 5.15 kde patched

ADDITIONAL INFORMATION
Here are the links to the Craft repository and project I'm attempting to build with `kirigami_package_breeze_icons`:
https://github.com/Cuperino/craft-blueprints-qprompt
https://github.com/Cuperino/QPrompt
Comment 1 Javier O. Cordero Pérez (Cuperino) 2022-06-04 05:14:03 UTC
This issue seems to have been fixed. I'll mark it as solved.
Comment 2 Javier O. Cordero Pérez (Cuperino) 2022-07-07 14:03:17 UTC
This issue is still present. It turns out it did not manifest itself previously because I wasn't using the Qt Patch Collection in my new Craft environment. The issue only seems to occur when using the Qt Patch Collection on Windows.

I don't know if this bug is specific to Craft or to the Patch Collection. But, given the problem doesn't seem to lie in Kirigami, I've moved this issue from frameworks-kirigami to Craft.