Commit Graph

618 Commits

Author SHA1 Message Date
Armin Novak
6c0fd3204c [clang,warn] disable -Wimplicit-void-ptr-cast
Since this is a C project casts from and to void* are used to type
convert. Do not warn about this.
2026-01-08 09:32:55 +01:00
Armin Novak
cb761e1d9c dev-cycle-3.20.1-dev0 2025-12-17 11:22:20 +01:00
Armin Novak
b8e790a02e release-3.20.0 2025-12-17 11:22:18 +01:00
akallabeth
54bde10bb7 dev-cycle-3.19.2-dev0 2025-12-12 08:36:38 +01:00
akallabeth
f848367ffa release-3.19.1 2025-12-12 08:36:35 +01:00
Armin Novak
58742e4da7 dev-cycle-3.19.1-dev0 2025-12-05 09:17:58 +01:00
Armin Novak
300a4e6d60 release-3.19.0 2025-12-05 09:17:55 +01:00
akallabeth
f137b5eb9c [cmake] fix aarch64 neon detection
patch by @whitpa posted in #11997
2025-11-17 08:29:01 +01:00
akallabeth
cf436dfac3 dev-cycle-3.18.1-dev0 2025-11-12 09:57:39 +01:00
akallabeth
11ed2c65fe release-3.18.0 2025-11-12 09:57:39 +01:00
akallabeth
d20835feb1 [CMake] mark WITH_VAAPI experimental 2025-10-25 07:19:03 +02:00
Armin Novak
34a835c412 [cmake,json] limit jansson detection
discard versions older than 2.13
2025-10-01 15:22:12 +02:00
Armin Novak
c44052f12f [cmake,json] add second fallback
If both, CMake and pkg-config fail, fall back to find_path and
find_library detection
2025-09-25 16:09:00 +02:00
Armin Novak
8f8cd89f69 [winpr,json] add jansson support
* Split JSON implementations in separate files
* Simplify JSON detection
* Add jansson implementation
2025-09-25 15:09:28 +02:00
Armin Novak
af9cb25526 dev-cycle-3.17.3-dev0 2025-09-18 20:42:57 +02:00
Armin Novak
955ad49545 release-3.17.2 2025-09-18 20:42:55 +02:00
akallabeth
25b5b38d32 [CMake,client] add pkg-config dependencies 2025-09-11 07:17:52 +02:00
Armin Novak
a7b7474742 [proxy,modules] generate pkg-config files for modules 2025-09-11 07:16:23 +02:00
akallabeth
28eae2ba58 [cmake] fix library naming
* fix a backward compatibility issue (versionless proxy modules)
2025-09-01 13:22:21 +02:00
akallabeth
d96124c6a3 dev cycle 3.17.2-dev0 2025-09-01 09:18:58 +02:00
akallabeth
854937b55b release 3.17.1 2025-09-01 09:18:56 +02:00
akallabeth
ec9e74f5c8 [client,x11] add global config file support 2025-08-29 10:53:29 +02:00
akallabeth
5948091c65 [cmake] split versioning
* WITH_LIBRARY_VERSIONING appends the major version to the name
* WITH_LIBRARY_SOVERSIONING enables SOVERSION on platforms supporting it
2025-08-26 15:27:55 +02:00
akallabeth
78f51bed0d [cmake,krb5] make KRB5_ROOT_* cache variables
this makes them visible by ccmake and other config tools.
2025-08-26 14:00:08 +02:00
Armin Novak
aba86b1e8f dev cycle 3.17.1-dev0 2025-08-22 09:42:54 +02:00
Armin Novak
15b1b98293 release 3.17.0 2025-08-22 09:42:51 +02:00
akallabeth
12d0e491f6 [cmake] add installWithRPATH
this new CMake function installs a target to a destination and adds the
correct relative RPATH to some desired locations
2025-07-17 13:59:51 +02:00
akallabeth
f3e1f20018 [cmake] unify version creation
* move to common cmake/GetProjectVersion.cmake for both, WinPR and
  FreeRDP
* add preference for git tag or commit
* move options to this common file
2025-06-27 12:48:52 +02:00
akallabeth
f48b129414 [client,desktop] fix StartupWMClass setting 2025-06-26 10:23:43 +02:00
Armin Novak
84691cf881 [cmake] set MSVC utf-8 source encoding 2025-06-05 11:58:47 +02:00
akallabeth
52ff1cef93 [cmake] install SSO-MIB if build by ExternalProject
* Install the library if we build it as part of FreeRDP
* Format files with cmake-format
2025-06-02 19:40:44 +02:00
Andreas Ziegler
d6d6909d66 chore: allow fetching sso-mib as ExternalProject 2025-05-21 11:44:16 +02:00
Andreas Ziegler
5e76909881 feat: add login through MS identity broker via sso-mib interface
This change enables an alternative way of acquiring the necessary
access tokens through a local identity broker. In the current
implementation, we need to visit URLs twice and paste back the
URLs we are redirected to in order to extract authorization codes
and ultimately fetch the correct access tokens for RDP (described
here: <0>).

As an alternative, MS also provides the Microsoft Authentication
Library (MSAL) through which authentication can be handled more
or less in the background when we're using a trusted device. In
particular, we can request access tokens with the same
parameters as we're currently doing through the URL-based scheme.

As the MSAL bindings are not available for C, we implemented a
small wrapper library called sso-mib which is available at
https://github.com/siemens/sso-mib. This library translates the
high-level requests (such as acquire_token_interactive) to
respective messages on the D-Bus messaging bus which is used to
communicate with the identity broker service on Linux. The
library can be built as a .deb package and subsequently be
found through PkgConfig mechanisms in CMake.

When sso-mib is not available through pkg-config, it can also
be placed in external/, with the directory structure looking
like the following. include/ is copied from the root of the
sso-mib directory and lib/ populated with the built shared
library files and symlinks.

    external/
    ├── README
    └── sso-mib
        ├── include
        │   └── sso-mib
        │       ├── mib-account.h
        │       ├── mib-client-app.h
        │       ├── mib-exports.h
        │       ├── mib-pop-params.h
        │       ├── mib-prt.h
        │       ├── mib-prt-sso-cookie.h
        │       └── sso-mib.h
        └── lib
            ├── libsso-mib.so -> libsso-mib.so.0
            ├── libsso-mib.so.0 -> libsso-mib.so.0.4.0
            └── libsso-mib.so.0.4.0

This feature is currently hidden behind a configuration switch
and must be enabled via `-DWITH_SSO_MIB=ON`. If the connection
to the broker fails (for example, if no identity broker is
installed or running on the system), we automatically fall back
to the current scheme of copy-pasting URLs.

<0>: https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/e967ebeb-9e9f-443e-857a-5208802943c2
2025-05-21 11:44:16 +02:00
akallabeth
abbc6ba37f [cmake,krb5] fix redetection of kerberos 2025-05-16 11:04:17 +02:00
akallabeth
1e2b44e73e [cmake,ffmpeg] fix cmake formatting 2025-05-05 10:08:02 +02:00
Florian Märkl
1cfb03d5f9 [cmake] Fix finding ffmpeg under nonstandard prefixes
The prefix given to pkg_check_modules is PC_${_component}, not
PC_LIB${_component}, so those variables were always read as empty, thus
no HINTS were passed to the find_* functions and ffmpeg could not be
found if it was not in a default path.
2025-05-01 21:36:16 +02:00
akallabeth
0eefdbdb40 [cmake,json] improve json detection 2025-04-22 10:20:01 +02:00
akallabeth
79b8793a8f [cmake] simplify v4l detection 2025-04-12 21:26:44 +02:00
akallabeth
6314e93939 [cmake] drop legacy and unused cmake_policy
Some cmake_policy settings have long been active by default (3.13 is our
current baseline) or simply unused. Due to issues with CMake 4.0 lets
drop them
2025-04-03 08:31:36 +02:00
akallabeth
e3c93573f3 [cmake] add explicit instructions to turn off unmaintained modules
* Add detailed CMake warning to disable unmaintained modules
* Add sample shadow subsystem implementation
* Allow building shadow server with dummy subsystem
2025-03-17 16:23:51 +01:00
akallabeth
2b46c3d3e2 [cmake] set manpage name in generator function 2025-03-06 15:30:30 +01:00
Michael Tokarev
19f129654e spelling: dont 2025-03-06 13:24:29 +03:00
Armin Novak
458837282e [cmake] Enable CMAKE_EXPORT_COMPILE_COMMANDS by default
if not set from environment or commandline default to enable the compile
commands generation
2025-02-26 13:42:10 +01:00
akallabeth
9f60bb40a2 [cmake,android] enable LTO if CMake >= 3.20.0 2025-02-22 15:21:59 +01:00
akallabeth
358c36486f [cmake] fix missing include 2025-02-18 20:00:33 +01:00
akallabeth
46bcc2bea3 [cmake] fix CheckAndSetFlag
Actually add the flags provided and not discard them.
2025-02-14 11:35:08 +01:00
akallabeth
6ddc268eda [cmake] drop -Wno-used-but-marked-unused
__attribute__((unused)) does emit that warning if a variable is used.
The C23/C++17 version [[maybe_unused]] does not, so drop the warning to
have consistency
2025-02-13 13:31:44 +01:00
akallabeth
a24ffe957c [cmake] make C and C++ standards configurable
use cache variables to allow overriding them from command line
2025-02-13 13:30:06 +01:00
akallabeth
0ae7c4b52d [cmake] refactor configuration
* Split common stuff to reusable files
* Disable INTERPROCEDURAL_OPTIMIZATION for SDL2/3 resource targets
2025-02-11 11:33:34 +01:00
akallabeth
046413a8c3 [cmake] fix formatting 2025-01-31 12:29:37 +01:00