Commit Graph

170 Commits

Author SHA1 Message Date
akallabeth
793d80f2c4 [cmake] update ci defaults 2023-08-04 12:59:11 +02:00
akallabeth
8470b6ea26 [cmake] set default build type
set with CACHE STRING FORCE to properly be picked up by configuration
tools
2023-08-04 12:59:11 +02:00
akallabeth
76d23885d4 [cmake] add common options to subprojects 2023-08-04 12:59:11 +02:00
akallabeth
5de7887d93 start new development cycle after 3.0.0-beta1 release 2023-07-21 16:04:49 +02:00
Armin Novak
f08d59ca5f update version to 3.0.0-beta1 2023-07-21 16:04:35 +02:00
Armin Novak
646a78d19c [cmake] do proper pkcs11 detection
do not rely on find_feature but use a CMake option and find_package
2023-06-28 10:02:15 +02:00
Armin Novak
0c7330720f [winpr,crypto] add internal rc4 replacement
RDP relies on RC4 for some operations, so we need these to successfully
log on to windows machines. This is a replacement for use with SSL
libraries that have already deprecated these.
2023-05-17 14:51:58 +02:00
akallabeth
05edcbc357 [cmake] fix version from git tag
only consider tags that conform to the format  'somestring1.2.3' as
valid tags
2023-05-02 09:34:07 +02:00
Marc-André Moreau
32264b90cc add WITH_UNICODE_BUILTIN option to use built-in UTF conversion functions 2023-04-18 16:51:08 -04:00
akallabeth
b4e9c8b39f [build] removed complex libraries
* remove obsolete complex libraries helper
* fix static linking
2023-03-01 08:18:34 +01:00
akallabeth
c9e61ff0c5 [cmake] simplify krb5 detection 2023-02-27 11:18:02 +01:00
Armin Novak
f0e9797b4c [build] require CMake >= 3.13
required for target_link_options
2023-02-27 11:18:02 +01:00
akallabeth
92d3e3c64a [winpr] use WINPR_ prefix for conditional includes 2023-01-10 17:38:00 +01:00
Armin Novak
558d5b5e8d [build,ci] update ci to not always build kerberos
disable kerberos for targets not supporting it
2022-12-09 12:36:12 +01:00
Armin Novak
73d5f37537 [build] move krb5 detection to winpr
only used internally in winpr, no need for project wide configuration
2022-12-09 12:36:12 +01:00
Armin Novak
f2016c77c5 [winpr] renamed WITH_GSS_NO_NTLM_FALLBACK 2022-12-09 12:36:12 +01:00
Armin Novak
819a62a8df Disable kerberos support for android and ios 2022-12-09 12:36:12 +01:00
Armin Novak
2fdae68bbd [build] disable krb5 support on windows
windows provides native support, no need for libkrb5
2022-12-09 12:36:12 +01:00
fifthdegree
ad87144ce5 Rename WITH_GSSAPI to WITH_KRB5
Change cmake variables to not be gssapi specific
2022-12-09 12:36:12 +01:00
Armin Novak
074f28073a [winpr,sspi] enable negotiate by default 2022-12-08 11:07:00 +01:00
akallabeth
5ae159303f [winpr,crt] Added unicode conversion backends
* Support apple with NSString
* Support android via JNI
* Split ICU to own file
2022-11-28 10:42:36 +01:00
akallabeth
3a5fb5e3a3 Added replacement MD5 implementation 2022-10-19 08:17:11 +02:00
akallabeth
309a6bea77 Added replacement MD4 implementation 2022-10-19 08:17:11 +02:00
akallabeth
d2ab631c40
Test uri fix (#8232)
* Fixed TestUri unit test

* Make proper unit test out of the test function
* Add proper test cases

* Replace FindFirstFileA with FindFirstFileW for addins

This allows addin paths to contain unicode symbols.

* Fixed parse_uri_to_local_file definition

* Move to common clipboard.c file
* Move to header file so it can be included in test case

* Added WINPR_LOCAL for test builds

This macro exports internal functions in case of a unit test build
This way unit tests can access these without other workarounds.

* Fixed typo in function name is_dos_driver

* Cleaned up FindFirstFileW call

Use a wrapper function to convert to unicode and call the function

* Cleaned up BUILD_TESTING and EXPORT_ALL_SYMBOLS

* EXPORT_ALL_SYMBOLS now does as the name implies and exports all
  non static functions/variables from the library.
* BUILD_TESTING now only sets the defines for test code and
  activates EXPORT_ALL_SYMBOLS to allow tests to access internal
  code

* Fixed windows client warnings

* disable CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
2022-09-26 11:22:02 +02:00
Armin Novak
ee6317081b Improve string version extraction regex
Allow (git) tags of format 'some-important-text_v1.2.3-something_else'
Any character is now allowed, as long as there is a version of format
1.2.3 somewhere in the tag name.
2022-09-20 13:25:44 +02:00
Armin Novak
09275bf4c7 Disable execinfo support if only header detected
Some implementations (e.g. Android with API < 33) provide the
execinfo.h header file, but do not define the backtrace functions
expected. Disable the support for execinfo backtrace in such a case
2022-09-16 08:43:19 +02:00
akallabeth
bf56a39e6f
Fixed #8090: Duplicate definition of strndup (#8102)
* Fixed #8090: Duplicate definition of strndup

* Moved strndup detection to winpr

Co-authored-by: Armin Novak <anovak@thincast.com>
2022-08-02 09:15:38 +02:00
fifthdegree
1c012b09b8 implement proper SPNEGO negotiation 2022-06-21 10:27:17 +02:00
akallabeth
1aacf504a1 Increase C standard to C11 2022-06-03 08:51:40 +02:00
akallabeth
a0ca2b4a6e Add LTO settings 2022-06-03 08:51:40 +02:00
Marc-André Moreau
1d5c0be5ec Add settings to load a custom SSPI shared library module 2022-06-01 15:16:12 +02:00
akallabeth
a62fe8a3e9 Enable unwind.h and dladdr as default backtrace implementation
* config option USE_UNWIND to enable/disable
2022-04-29 15:15:53 +02:00
akallabeth
f10da4552b default android to unwind 2022-04-29 14:27:44 +02:00
akallabeth
00b00ea521 Added unwind.h support 2022-04-29 14:27:44 +02:00
akallabeth
860f44f762 CMake check_include and struct cleanup
Move to WinPR what should be there.
2022-04-29 14:27:44 +02:00
Armin Novak
6ed50b4b1d Refactored WinPR includes 2022-03-03 11:26:48 +01:00
akallabeth
70ea2eef46 Fixed *_EXPORTS 2022-03-01 08:00:25 +01:00
Armin Novak
cb27338bf4 Set required C standard to C99 with extensions 2022-02-24 12:31:58 +01:00
akallabeth
c1a1e4f1d2 Force WITH_GSS_NO_NTLM_FALLBACK to OFF 2022-02-17 09:53:52 +00:00
Armin Novak
8231a7e7a7 Added runtime configuration option for kerberos/NTLM fallback 2022-02-15 13:43:36 +00:00
akallabeth
2d2627deab
Fixed SSPI fallback to NTLM (#7642)
* Fixed SSPI fallback to NTLM

* Fixed wide/ansi mixup

* WITH_GSS fixes

* Move to WinPR as this is not related to FreeRDP
* Add option WITH_GSS_NO_NTLM_FALLBACK to disable NTLM fallback

* Abort NLA if status is SEC_E_NO_CREDENTIALS

* Properly invalidate sspi::SubContext
2022-02-15 09:04:17 +01:00
akallabeth
9570c349ac Added missing CMake include 2022-01-25 15:33:04 +01:00
akallabeth
7dedfbb0b0 Added support for getpwuid_r, replaced duplicate code
* Use GetUserNameExA to get current user name when required.
* Add support for getpwuid_r if available
2022-01-25 15:33:04 +01:00
David Fort
d4020e2328 winpr: implement ncrypt API
This implements the emulation for the ncrypt API and more specifically the smartcard
provider so that we can list available keys and certificates using pkcs11-helper.
2021-12-14 14:12:01 +01:00
Armin Novak
b05eb8d834 Fixed thread related changes:
* Fixed typo
* Fixed wrong #ifdef
2021-09-20 10:59:59 +02:00
akallabeth
76979a47fb Added new CMake option to dump event handles in use 2021-09-20 10:59:59 +02:00
akallabeth
1c7e3933a4
Fixed CMake options, define in library that use them. (#7141) 2021-07-01 16:19:12 +02:00
akallabeth
c3a85432b8 Fixed buildpackage warnings 2021-06-30 11:57:23 +02:00
akallabeth
14f41bb435 Remove obsolete HAVE_SYS_STRTIO_H 2021-06-30 10:06:17 +02:00
Armin Novak
ed7e3761f1 Fixed include paths for uwac 2021-06-28 15:06:30 +02:00
Armin Novak
c8d570a074 Fixed include paths for WinPR 2021-06-28 15:06:30 +02:00
Armin Novak
2e42df9515 Fixed HAVE_PTHREAD_MUTEX_TIMEDLOCK 2021-06-28 15:06:30 +02:00
Armin Novak
fd08c77f7f Fixed definition of config.h symbols 2021-06-28 15:06:30 +02:00
akallabeth
534d30beb3
No deprecated (#7107)
* Removed cmake options disabling compiler warnings

* Added deprecation compile options

* Fixed android client use of deprecated symbols

* Removed obsolete callback
2021-06-22 14:39:10 +02:00
Armin Novak
8ef57bf296 Replaced CMAKE_[SOURCE|BINARY]_DIR with PROJECT_[SOURCE|BINARY]_DIR
Thanks @Pollux42 for the hint in #7096
2021-06-22 08:54:18 +02:00
akallabeth
b453d5e40e Fixed rdtk, uwac and winpr standalone builds 2021-06-22 08:54:18 +02:00
akallabeth
81cef9251f Upgrade CMake requirement to 3.4 2021-06-22 08:54:18 +02:00
akallabeth
3a75228242 Added option do disable WINPR_ASSERT 2021-06-14 09:37:07 +02:00
Armin Novak
a161bafa5f Fix #6066, #6045: Disable spincount by default. 2020-04-13 09:56:19 +02:00
akallabeth
08fd2876b9 Started 3.0 development cycle. 2020-04-10 15:01:15 +02:00
Bernhard Miklautz
5ab2bed874 new: update ChangeLog and set version to 2.0.0 2020-04-09 18:00:51 +02:00
Armin Novak
da52297913 Added winpr version macro (same as freerdp version) 2019-08-22 16:03:50 +02:00
Armin Novak
92ca3002e3 Allow build without WinPR tools 2019-08-14 15:10:00 +02:00
Marc-André Moreau
1b42e512ee winpr: add WINPR_DLL definition 2018-10-04 15:09:49 -04:00
akallabeth
d130d9cb21
Merge pull request #4613 from kevans91/file64
Enable 64-bit file support on FreeBSD as well
2018-05-03 11:31:54 +02:00
Kyle Evans
5463b23591 Enable 64-bit file support on FreeBSD as well 2018-05-02 10:38:44 -05:00
Kyle Evans
a7c0632bf2 Use SetFreeRDPCMakeInstallDir where CMake modules are installed 2018-05-02 10:36:52 -05:00
Bernhard Miklautz
1aec784f75 feat: add support for .source_version
When building packages, especially when source packages are used, git is
not necessarily available or the source isn't provided in git. In those
cases it wasn't possible to set the GIT_REVISION and --version shows
"n/a" for the git revision.

If the file .source_version is available now the content of it is used
as GIT_REVISION. Packagers might want to add a .source_version file
when they don't build the packages from git.

Possible breaking change:

The variable PRODUCT_VERSION isn't available anymore. Use GIT_REVISION
instead.
2017-10-06 15:02:23 +02:00
Armin Novak
620b1ea603 Added 64bit file support flag for linux. 2017-05-10 14:58:12 +02:00
Bernhard Miklautz
d817469b78 Install man pages
* man pages are only build/installed if WITH_MANPAGES is enabled
* create a new cmake function install_freerdp_man to unified install man
  pages
* install all man pages using the new function
* update the nightly packages accordingly
2017-01-16 11:34:32 +01:00
Norbert Federa
f71b6b46e8 fix string format specifiers
- fixed invalid, missing or additional arguments
- removed all type casts from arguments
- added missing (void*) typecasts for %p arguments
- use inttypes defines where appropriate
2016-12-16 13:48:43 +01:00
Bernhard Miklautz
c82cd6cb57 Fix issues in wlog man page
* fix spelling errors
* move man page from section 1 to section 7
* fix the man page header to match the actual section
* adapt the packages for wlog.7

Fixes #3632
2016-12-01 15:36:31 +01:00
akallabeth
79a360b1db Merge pull request #3405 from hardening/wlog_man
Add a dedicated man page for wLog
2016-07-07 10:38:51 +02:00
David Fort
db6efd06d0 Add a dedicated man page for wLog 2016-06-21 09:49:44 +02:00
Armin Novak
dd9cb25b3c Fixed defined symbols for function check. 2016-06-03 14:55:26 +02:00
Armin Novak
e40546485d Fixed pthread_mutex_timedlock detection. 2016-06-02 15:33:00 +02:00
Marc-André Moreau
cedf6d98e2 freerdp: more UWP porting 2016-03-29 20:34:52 -04:00
David Woodhouse
701f54e07d winpr: Bump API version to 2.0
In commit 12bd0ec8 ("winpr: BUMP the API version to 1.2") it was stated
that the intention was to allow multiple winpr versions to be installed
in parallel.

However, it's not sufficient to change just the *minor* version of the
library. The soname is still 'libwinpr.so.1', and thus we still can't
coexist with earlier versions — in particular, we can't install FreeRDP2
in parallel with existing distribution packages of earlier versions.

Bump the soname so it does actually work
2016-03-04 13:22:58 +00:00
Bernhard Miklautz
71836f6cab build winpr: export WINPR_API_VERSION 2016-02-25 23:38:53 +01:00
Bernhard Miklautz
12bd0ec823 winpr: BUMP the API version to 1.2
This is required that the exported cmake find module can be
differentiated from the "old" one. This allows it to have
multiple winpr API version installed in parallel.

find_package should now be used with an explicit version number
set like:

find_package(WinPR 1.2 REQUIRED)
2016-02-16 17:39:22 +01:00
Armin Novak
9b0ef3a4ec Fixed stdint.h and stdbool.h detection. 2016-02-02 18:28:15 +01:00
Bernhard Miklautz
3232be51b0 Use major version only for SOVERSION
For 2.0+ major will be increased if ABI/API isn't compatible anymore.
2016-01-14 10:47:57 +01:00
Bernhard Miklautz
6fa3608111 cleanup cmake exports and pkg-config files
With this commit the "exported" components (usable with pkg-config and
cmake find module package)
* winpr - winpr library and headers
* freerdp - core library and headers
* freerdp-client - client specific library
* freerdp-server - server specific library
* rdtk - rdtk headers and library

To allow the installation of multiple different version (different major
number) the include files were moved into the respective sub folder:
freerdp -> freerdp{MAJOR}/freerdp (currently freerdp2/freerdp/)
winpr -> winpr{MAJOR}/winpr (currently winrp1/winpr/)
rdtk -> rdpk{MAJOR}/rdtk (currently rdtk0/rdtk/

The generated pkg-config and cmake find modules now also include the major
version number. Currently the following pkg-config are generated and
installed.
* winpr1
* freerdp2
* freerdp-server2
* freerdp-client2
* rdtk0

As cmake is able to handle multiple versions out of the box the
following can be used to find a specific module:

find_package(WinPR)
find_package(FreeRDP)
find_package(FreeRDP-Server)
find_package(FreeRDP-Client)
find_package(RdTk)

As cmake doesn't automatically resolve dependencies for packages it is
necessary to manually include the requirements. For example if
FreeRDP-Client is required WinPR and FreeRDP need to be included
(find_package) as well.

This commit also fixes the installation when STATIC_CHANNELS are built.
WITH STATIC_CHANNELS all channels are linked into libfreerdp-client, for
this all channels are generated as linker archive and linked together in
the final step. Before the intermediate linker archives were, although
not required and useful, installed. Same applies for server side
channels.
2016-01-12 17:32:33 +01:00
Bernhard Miklautz
b8136a3769 build: remove FREERDP_MONOLITHIC_BUILD
FREERDP_MONOLITHIC_BUILD was obsolete for a while and unused
2016-01-12 17:32:32 +01:00
Marc-André Moreau
ac62d43e0f winpr: isolate OpenSSL 2015-10-06 10:56:24 -04:00
Bernhard Miklautz
f9c7e03044 winpr: add intrin.h
Exposing lzcnt in crt.h might causes compiler errors (redefinition) with
recent versions of gcc (>=4.9) when winpr is included in other projects.
As lzcnt isn't part of crt according to MSDN and also shouldn't be
exported by default it was moved to intrin.h.

The related test was also moved to the top level directory of winpr.
2015-05-26 16:41:29 +02:00
Bernhard Miklautz
6a49bcfe40 winpr: always build "monolitic"
winpr is now always build as single library.
The build option MONOLITHIC_BUILD doesn't influence this behavior anymore.

The only exception is winpr-makecert-tool which is still build as extra
library.

This obsoletes complex_libraries for winpr.
2014-07-10 11:10:58 +02:00
Marc-André Moreau
20464a08ee winpr: remove installable config.h header 2014-06-10 08:24:20 -04:00
Marc-André Moreau
784e9abd79 cmake: improve __FILE__ relative path hack 2014-04-21 14:42:24 -04:00
Marc-André Moreau
17665378a9 wfreerdp: fix target exporting 2014-02-02 22:37:54 -05:00
Marc-André Moreau
b5bef07e50 wfreerdp: fix building against OpenSSL with MONOLITHIC_BUILD and shared libraries 2014-02-01 19:53:45 -05:00
Marc-André Moreau
3b0bcc9824 cmake: export to different directory, export more build info 2013-10-29 15:16:44 -04:00
Marc-André Moreau
37450da55d cmake: fix exporting of targets on pre-2.8.11 2013-10-29 14:47:40 -04:00
Marc-André Moreau
c0a1c259f3 freerdp: start exporting targets automatically 2013-10-28 22:09:31 -04:00
Marc-André Moreau
4a4a36d5c4 cmake: remove vendor-specific options 2013-09-10 14:03:15 -04:00
Armin Novak
c39d99b02d winpr config.h now generated in binary tree. 2013-08-12 13:51:18 +02:00
Benoît LeBlanc
03a401b8e6 CMakelists:
disabled installation of headers and libraries for the wayk client.
2013-07-25 21:59:21 -04:00
Martin Fleisz
7518170cd4 winpr: Don't build tools for Android and iOS 2013-03-14 09:38:50 -07:00
Marc-André Moreau
421c4c86c4 windows: fix NSIS packaging 2012-11-12 13:17:44 -05:00
Marc-André Moreau
e62860ab29 cmake: replace FindOptionalPackage macros with FindFeature macros 2012-11-02 19:27:01 -04:00