633 Commits

Author SHA1 Message Date
Armin Novak
e3cd4652a1 dev-cycle 3.23.1-dev0 2026-02-25 09:40:28 +01:00
Armin Novak
b933ae18d9 release-3.23.0 2026-02-25 09:40:28 +01:00
Armin Novak
103964c7a6 [cmake,compiler] disable -Wc++-keyword
This is a C project, so C++ support is only required in public API
headers. Disable this warning.
2026-02-13 18:34:51 +01:00
Armin Novak
3af5581777 [cmake,compiler] disable -Wjump-misses-init
like explained in
https://lists.nongnu.org/archive/html/coreutils/2018-06/msg00044.html
this warning is quite useless for C (in contrast to C++) code
2026-02-13 18:22:33 +01:00
Armin Novak
72d4e7ff39 [cmake,compiler] disable -Wnrvo warnings 2026-02-13 12:15:22 +01:00
Armin Novak
5a82fcb1b3 [cmake,tidy] use .clang-tidy for cmake target 2026-02-10 13:54:20 +01:00
akallabeth
a600fcdcc5 dev cycle 3.22.1-dev0 2026-01-28 10:59:21 +01:00
Armin Novak
e3ef4c7113 release 3.22.0 2026-01-28 10:58:29 +01:00
akallabeth
10440d2ef6 dev cycle 3.21.1-dev0 2026-01-19 16:19:08 +01:00
akallabeth
6f5d0048f0 release 3.21.0 2026-01-19 16:19:06 +01:00
Armin Novak
950273827b dev-cycle 3.20.2-dev0 2026-01-14 11:36:16 +01:00
Armin Novak
ef106b0c5a release 3.20.2 2026-01-14 11:35:55 +01:00
akallabeth
b3c2db9dfb dev-cycle-3.20.2-dev0 2026-01-14 09:16:51 +01:00
akallabeth
7418bc7b7c release-3.20.1 2026-01-14 09:16:51 +01:00
akallabeth
8d97de1b40 [cmake,compiler] add -fsigned-char to compiler flags 2026-01-10 09:37:19 +01:00
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