Bug 498018 - KRDC fails to build due to newer version of FreeRDP version 3.10.3 available
Summary: KRDC fails to build due to newer version of FreeRDP version 3.10.3 available
Status: RESOLVED NOT A BUG
Alias: None
Product: krdc
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Fedora RPMs Linux
: NOR minor
Target Milestone: ---
Assignee: Urs Wolfer
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-12-29 14:36 UTC by Vlad Korol
Modified: 2024-12-29 15:47 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
attachment-1847327-0.html (1.46 KB, text/html)
2024-12-29 15:35 UTC, Vlad Korol
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Vlad Korol 2024-12-29 14:36:45 UTC
SUMMARY
Fedora Workstation 41 ships FreeRDP version 3.10.3, preventing KRDC from building because it requires an older version of the library. In CMakeLists.txt at https://invent.kde.org/network/krdc/-/blob/master/CMakeLists.txt?ref_type=heads#L122 on the line 122, it says:
```
find_package(FreeRDP 2.10)
```
Which on Fedora 41 causes the following issue when building with kde-builder:
```
-- The C compiler identification is GNU 14.2.1
-- The CXX compiler identification is GNU 14.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- 

Installing in /home/chocolate-magnate/kde/usr. Run /home/chocolate-magnate/kde/build/krdp/prefix.sh to set the environment for KRdp.
-- Looking for __GLIBC__
-- Looking for __GLIBC__ - found
-- Performing Test _OFFT_IS_64BIT
-- Performing Test _OFFT_IS_64BIT - Success
-- Performing Test HAVE_DATE_TIME
-- Performing Test HAVE_DATE_TIME - Success
-- Performing Test HAVE_STDATOMIC
-- Performing Test HAVE_STDATOMIC - Success
-- Found WrapAtomic: TRUE
-- Found OpenGL: /usr/lib64/libOpenGL.so
-- Found WrapOpenGL: TRUE
-- Found XKB: /usr/lib64/libxkbcommon.so (found suitable version "1.7.0", minimum required is "0.5.0")
-- Found WrapVulkanHeaders: /usr/include
-- Found Wayland_Client: /home/chocolate-magnate/kde/usr/lib64/libwayland-client.so (found version "1.23.90")
-- Found Wayland_Server: /home/chocolate-magnate/kde/usr/lib64/libwayland-server.so (found version "1.23.90")
-- Found Wayland_Cursor: /home/chocolate-magnate/kde/usr/lib64/libwayland-cursor.so (found version "1.23.90")
-- Found Wayland_Egl: /home/chocolate-magnate/kde/usr/lib64/libwayland-egl.so (found version "18.1.0")
-- Found Wayland: /home/chocolate-magnate/kde/usr/lib64/libwayland-client.so;/home/chocolate-magnate/kde/usr/lib64/libwayland-server.so;/home/chocolate-magnate/kde/usr/lib64/libwayland-cursor.so;/home/chocolate-magnate/kde/usr/lib64/libwayland-egl.so (found suitable version "1.23.90", minimum required is "1.15")
-- Found WaylandScanner: /home/chocolate-magnate/kde/usr/bin/wayland-scanner
-- Found KF6Config: /home/chocolate-magnate/kde/usr/lib64/cmake/KF6Config/KF6ConfigConfig.cmake (found version "6.10.0")
-- Found KF6DBusAddons: /home/chocolate-magnate/kde/usr/lib64/cmake/KF6DBusAddons/KF6DBusAddonsConfig.cmake (found version "6.10.0")
-- Found KF6KCMUtils: /home/chocolate-magnate/kde/usr/lib64/cmake/KF6KCMUtils/KF6KCMUtilsConfig.cmake (found version "6.10.0")
-- Found Gettext: /usr/bin/msgmerge (found version "0.22.5")
-- Found KF6I18n: /home/chocolate-magnate/kde/usr/lib64/cmake/KF6I18n/KF6I18nConfig.cmake (found version "6.10.0")
-- Found KF6CoreAddons: /home/chocolate-magnate/kde/usr/lib64/cmake/KF6CoreAddons/KF6CoreAddonsConfig.cmake (found version "6.10.0")
-- Found KF6StatusNotifierItem: /home/chocolate-magnate/kde/usr/lib64/cmake/KF6StatusNotifierItem/KF6StatusNotifierItemConfig.cmake (found version "6.10.0")
-- Found KF6Crash: /home/chocolate-magnate/kde/usr/lib64/cmake/KF6Crash/KF6CrashConfig.cmake (found version "6.10.0")
-- Found KF6: success (found suitable version "6.10.0", minimum required is "6.5.0") found components: Config DBusAddons KCMUtils I18n CoreAddons StatusNotifierItem Crash
CMake Error at CMakeLists.txt:41 (find_package):
  Could not find a configuration file for package "FreeRDP" that is
  compatible with requested version "2.10".

  The following configuration files were considered but not accepted:

    /usr/lib64/cmake/FreeRDP3/FreeRDPConfig.cmake, version: 3.10.3
    /lib64/cmake/FreeRDP3/FreeRDPConfig.cmake, version: 3.10.3



-- Configuring incomplete, errors occurred!

STEPS TO REPRODUCE
1. Follow getting started guide at https://community.kde.org/Get_Involved/development
2. Set up kde-builder as per documentation
3. Attempt to build KRDC
4. Build fails with CMake error due to FreeRDP version mismatch

System has FreeRDP 3.10.3 installed (/usr/lib64/cmake/FreeRDP3/FreeRDPConfig.cmake)
CMakeLists.txt requires exactly FreeRDP 2.10

OBSERVED RESULT
kde-builder fails to build KRDC because of strict version match. The exact error occurs here:
CMake Error at CMakeLists.txt:41 (find_package):
  Could not find a configuration file for package "FreeRDP" that is
  compatible with requested version "2.10".

  The following configuration files were considered but not accepted:

    /usr/lib64/cmake/FreeRDP3/FreeRDPConfig.cmake, version: 3.10.3
    /lib64/cmake/FreeRDP3/FreeRDPConfig.cmake, version: 3.10.3

EXPECTED RESULT
KRDC accepts FreeRDP version >=3 and proceeds with the build.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Fedora Workstation 41
KDE Plasma Version: Plasma 6 master branch commit c61aa0e17a
KDE Frameworks Version: Plasma 6 master branch commit c61aa0e17a
Qt Version: Qt 6.8.1

ADDITIONAL INFORMATION
Potential fix: allow FreeRDP version up to 4 explicitly:
```
find_package(FreeRDP 2.10...3.99)
```
Comment 1 Luigi Toscano 2024-12-29 15:22:59 UTC
If you check the code, it already supports FreeRDP 3.
https://invent.kde.org/network/krdc/-/blob/40418a0e6f2973a2b561cf2d963627fa1ac8cf3b/CMakeLists.txt#L144
You need to set some configuration settings as described here:
https://invent.kde.org/network/krdc/-/merge_requests/113
Comment 2 Vlad Korol 2024-12-29 15:26:15 UTC
(In reply to Luigi Toscano from comment #1)
> If you check the code, it already supports FreeRDP 3.
> https://invent.kde.org/network/krdc/-/blob/
> 40418a0e6f2973a2b561cf2d963627fa1ac8cf3b/CMakeLists.txt#L144
> You need to set some configuration settings as described here:
> https://invent.kde.org/network/krdc/-/merge_requests/113

Thank you a lot for fast response! I am sorry for not seeing it earlier. How do you make it work with kde-builder? I am building with it, and from the looks of it, kde-builder is a wrapper around Cmake. I am new to KDE Plasma development, so could you perhaps orient me how to enable this specific feature? I got this error when building with the command:
kde-builder workspace
Comment 3 Ömer Fadıl USTA 2024-12-29 15:33:01 UTC
btw have you tried installing freerdp2-devel package on your fedora ? [ you can have both 3 and 2 in same time ]
Comment 4 Vlad Korol 2024-12-29 15:35:07 UTC
Created attachment 176950 [details]
attachment-1847327-0.html

On 12/29/24 17:33, Ömer Fadıl USTA wrote:
> https://bugs.kde.org/show_bug.cgi?id=498018
>
> Ömer Fadıl USTA<omerusta@gmail.com> changed:
>
>             What    |Removed                     |Added
> ----------------------------------------------------------------------------
>                   CC|                            |omerusta@gmail.com
>
> --- Comment #3 from Ömer Fadıl USTA<omerusta@gmail.com> ---
> btw have you tried installing freerdp2-devel package on your fedora ? [ you can
> have both 3 and 2 in same time ]
>
Good question! Actually no, I thought this was a continuous package just 
freerdp-devel and dnf installed the third version. Didn't actually know 
you can use the second one too, I will try to build with the second 
version and report back.
Comment 5 Luigi Toscano 2024-12-29 15:39:12 UTC
> (In reply to Luigi Toscano from comment #1)
> > If you check the code, it already supports FreeRDP 3.
> > https://invent.kde.org/network/krdc/-/blob/
> > 40418a0e6f2973a2b561cf2d963627fa1ac8cf3b/CMakeLists.txt#L144
> > You need to set some configuration settings as described here:
> > https://invent.kde.org/network/krdc/-/merge_requests/113
> 
(In reply to Vlad Korol from comment #2)
> Thank you a lot for fast response! I am sorry for not seeing it earlier. How
> do you make it work with kde-builder? I am building with it, and from the
> looks of it, kde-builder is a wrapper around Cmake. I am new to KDE Plasma
> development, so could you perhaps orient me how to enable this specific
> feature? I got this error when building with the command:

I'm sorry, I don't use kde-builder yet. Have you checked its documentation at https://kde-builder.kde.org/ ? 
I think you should be able to set per-repository options.

Side note: please note that krdc is not part of Plasma. It is developed by the KDE community and shipped as part of the KDE Gear bundle.
Comment 6 Vlad Korol 2024-12-29 15:42:46 UTC
(In reply to Luigi Toscano from comment #5)
> > (In reply to Luigi Toscano from comment #1)
> > > If you check the code, it already supports FreeRDP 3.
> > > https://invent.kde.org/network/krdc/-/blob/
> > > 40418a0e6f2973a2b561cf2d963627fa1ac8cf3b/CMakeLists.txt#L144
> > > You need to set some configuration settings as described here:
> > > https://invent.kde.org/network/krdc/-/merge_requests/113
> > 
> (In reply to Vlad Korol from comment #2)
> > Thank you a lot for fast response! I am sorry for not seeing it earlier. How
> > do you make it work with kde-builder? I am building with it, and from the
> > looks of it, kde-builder is a wrapper around Cmake. I am new to KDE Plasma
> > development, so could you perhaps orient me how to enable this specific
> > feature? I got this error when building with the command:
> 
> I'm sorry, I don't use kde-builder yet. Have you checked its documentation
> at https://kde-builder.kde.org/ ? 
> I think you should be able to set per-repository options.
> 
> Side note: please note that krdc is not part of Plasma. It is developed by
> the KDE community and shipped as part of the KDE Gear bundle.

Thanks for suggesting! The website is just called `kde.org`, so I thought KDE issues could be reported here too. I found out there is a fix that allows to set Cmake options in kde-builder. 

For anyone finding this issue, you can enable FreeRDP version 3 either globally:

> global
>    cmake-options -DWITH_RDP=OFF -DWITH_RDP3=ON
> end global

or for krdc individually:
> module krdc
>    cmake-options -DWITH_RDP=OFF -DWITH_RDP3=ON
> end module
into your ~/.config/kdesrc-buildrc file.
Comment 7 Luigi Toscano 2024-12-29 15:47:54 UTC
(In reply to Vlad Korol from comment #6)
> (In reply to Luigi Toscano from comment #5)
> > Side note: please note that krdc is not part of Plasma. It is developed by
> > the KDE community and shipped as part of the KDE Gear bundle.
> 
> Thanks for suggesting! The website is just called `kde.org`, so I thought
> KDE issues could be reported here too. 

Yes, krdc issues should be reported here too, just like other issues of (almost) any other stuff developed by the KDE community. Just pointing out that "KDE" and "Plasma" are not the same thing, Plasma is just a part of the stuff produced by KDE, and krdc is not part of Plasma.