Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
3b537ad
Add uipath changes from previous version (2.0.0-rc3)
danutboanta Feb 12, 2022
ff1472d
Fix memory leak
danutboanta Feb 17, 2022
2820209
Create main.yml
vuplea Jul 26, 2022
4063561
Update main.yml for Azure Pipelines
mihainradu Jul 27, 2022
1b2ade3
Update main.yml for Azure Pipelines
mihainradu Jul 27, 2022
159ff5b
freerdp client for Feature/mr session (#1)
mihainradu Nov 4, 2022
d945f2f
fix #ROBO-2724 divideByZero
Dec 7, 2022
5b05843
fix pipeline
mihainradu Dec 9, 2022
86402e0
publish libs
mihainradu Dec 9, 2022
145f97b
Revert "fix #ROBO-2724 divideByZero"
mihainradu Dec 15, 2022
bc74388
slimer fix #ROBO-2724 divideByZero
mihainradu Dec 15, 2022
48fc29c
add support for freerdp debugging
mihainradu Dec 15, 2022
b787a82
complete fix with logs
mihainradu Dec 28, 2022
f2247aa
Revert "complete fix with logs"
mihainradu Dec 28, 2022
8840612
add log on dst==src
mihainradu Dec 28, 2022
cf3ce6c
Add customport option (#5)
mihainradu Feb 14, 2023
6e2e442
fix Connection failed chinesse
mihainradu Feb 24, 2023
090d807
fwd freerdp logs to logging (#7)
mihainradu Mar 3, 2023
0f1955f
update logs filter
mihainradu Mar 20, 2023
2b58526
- commission the UiPath.SessionTools library (#9)
eduard-dumitru Apr 21, 2023
4417a02
Fix unblittable error in PtrToStructure (#10)
eduard-dumitru Apr 24, 2023
9130a28
update filter and add logging tests #ROBO-2954 (#12)
mihainradu Jun 29, 2023
b0d860b
fix: _make disposed true in NativeLoggingForwarder.Dispose (#13)
eduard-dumitru Jun 29, 2023
adf59f1
ci: publish the NuGet packages conditionally (#15)
eduard-dumitru Jun 30, 2023
8082374
nuget: bump the minor to make room for patch bumps
eduard-dumitru Jul 19, 2023
805227a
- author changes in the root README.md so that contributors are aware…
eduard-dumitru Jul 27, 2023
23599fb
- unit test that the Git hash is present in the InformationalVersion
eduard-dumitru Jul 27, 2023
51ee25b
bump the version from 2.6.0 to 23.10.0
eduard-dumitru Jul 28, 2023
e27f7dd
SessionTools: Fix flaky tests [ROBO-3137] (#21)
eduard-dumitru Jul 31, 2023
667cf6c
SessionTools: fixes and simplification (#19)
eduard-dumitru Aug 1, 2023
10bfb1a
don't use _clientLogCallback if it's null
eduard-dumitru Sep 19, 2023
bb1df16
- add test
eduard-dumitru Sep 19, 2023
06cf199
FreeRDP fixes after OpenSSL bump (#28)
eduard-dumitru Nov 14, 2023
fa7f51e
Bump version to 23.12
danutboanta Nov 14, 2023
d3a845d
Merge pull request #29 from UiPath/fix/bump_version_23.12
danutboanta Nov 14, 2023
5925840
* explain why we turn Errors to Warnings in the FreeRdp native loggin…
eduard-dumitru Nov 17, 2023
8adf74c
* remove the comma in the "Rdp connection failed..." template to make…
eduard-dumitru Nov 28, 2023
c17edb6
Merge pull request #32 from UiPath/fix/make_error_message_pretty
vuplea Nov 29, 2023
4a340e8
* suppress the "Primary Drawing Order..." warnings when forwarding logs
eduard-dumitru Nov 21, 2023
e85a079
* fix mismatched log level for the Primary Drawing Order message
eduard-dumitru Nov 22, 2023
99ee4ed
[ROBO-3413] fix rdp license leak (#33)
mihainradu Jan 26, 2024
7253d70
[ROBO-3631] Add support for usernames containing spaces or single quo…
daniel-stanciu Mar 14, 2024
0d6a9ba
Add optional callback that's called when FreeRDP disconnects ROBO-400…
thecristidima Sep 9, 2024
a87685b
Automatically create tag when publishing package from uipath branch R…
thecristidima Sep 10, 2024
201e456
[ROBO-4715] fix pipeline enforcing msvc version (#42)
mihainradu May 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .artifactignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
**/*
# include freerdp build headers

!Build/x86/include/freerdp/**/*.*
!Build/x86/winpr/include/winpr/**/*.*
!Build/x64/include/freerdp/**/*.*
!Build/x64/winpr/include/winpr/**/*.*
# include freerdp libs
!Build/x86/Debug/**/*.*
!Build/x86/Release/**/*.*
!Build/x64/Debug/**/*.*
!Build/x64/Release/**/*.*

# include freerdp sources headers
!include/freerdp/**/*.*
!winpr/include/winpr/**/*.*

4 changes: 4 additions & 0 deletions .ci/Scripts/PrepareFreeRdpDev.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
call "%~dp0\install_msvc"
call "%~dp0\getOpenSsl"
call "%~dp0\buildOpenSsl"
call "%~dp0\buildFreeRDP" Debug
25 changes: 25 additions & 0 deletions .ci/Scripts/buildFreeRdp.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
pushd .
call "%~dp0\getvars.bat"

cd "%freeRdpDir%"
git clean -xdff

echo ">>>>>>>>>>>>>> create freerdp sln"
cmd /c cmake . -B"./Build/x64" -G"Visual Studio 17 2022"^
-T v143,version=%vc_ver%^
-A x64^
-DOPENSSL_ROOT_DIR="../OpenSSL-VC-64"^
-DCMAKE_INSTALL_PREFIX="./Install/x64"^
-DMSVC_RUNTIME="static"^
-DBUILD_SHARED_LIBS=OFF^
-DWITH_CLIENT_INTERFACE=ON^
-DCHANNEL_URBDRC=OFF^
-DWITH_MEDIA_FOUNDATION=OFF^

rem build freerdp libs
set Configuration=%1
if [%Configuration%] == [] set Configuration=Debug
echo ">>>>>>>>>>>>>>building freerdp configuration:<%Configuration%>"
%msbuild% "%buildDir%\x64\FreeRDP.sln" /p:Configuration=%Configuration% /p:Platform=x64

popd
10 changes: 10 additions & 0 deletions .ci/Scripts/buildOpenSsl.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
pushd .
call "%~dp0\getvars.bat"

cd "%freeRdpDir%\..\OpenSSL"
git clean -xdff

perl Configure VC-WIN64A no-asm no-shared no-module --prefix="%~dp0\..\..\..\OpenSSL-VC-64"
nmake
nmake install_dev
popd
12 changes: 12 additions & 0 deletions .ci/Scripts/getOpenSsl.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
pushd .
call "%~dp0\getvars.bat"

cd "%freeRdpDir%\.."

rem checkout openssl
mkdir OpenSSL
cd OpenSSL
git clone --no-checkout --filter=tree:0 --depth=1 --single-branch --branch=%openSSLTag% https://github.com/openssl/openssl .
git branch buildOpenSSl %openSSLTag%
git checkout buildOpenSSl
popd
57 changes: 57 additions & 0 deletions .ci/Scripts/getvars.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
@echo off
if defined freeRdpDir (exit /b)
@echo on

set openSSLTag=openssl-3.0.12
set freeRdpDir=%~dp0\..\..
set buildDir=%freeRdpDir%\Build
set scriptsDir=%~dp0
set vswhere="%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"

for /f "usebackq tokens=*" %%i in (`%vswhere% -latest -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\MSBuild.exe`) do (
set msbuild="%%i"
)

for /f "usebackq delims=" %%i in (`%vswhere% -prerelease -latest -property installationPath`) do (
set vsDir=%%i
)

set vc_ver_short=14.40
set vc_ver=14.40.17.10
set __call_SetupBuildEnvironment=(call "%vsdir%\VC\Auxiliary\Build\vcvarsall.bat" x64 -vcvars_ver=%vc_ver_short%)
%__call_SetupBuildEnvironment%

set __check_VCToolsVersion_short=_
if defined VCToolsVersion (set __check_VCToolsVersion_short=%VCToolsVersion:~0,5%)
if [%ERRORLEVEL%][%__check_VCToolsVersion_short%]==[0][%vc_ver_short%] (
goto end
)

if [%1]==[install-msvc] (goto install-msvc)

echo =========================== ERROR: ==============================
echo please install 'msvc visual c++ build tools %vc_ver_short%' first
echo run `install_msvc.bat` as admin with vs studio stopped
echo =================================================================
exit /b 111

:install-msvc
echo installing msvc
set vs_installer="%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vs_installer.exe"
%vs_installer% modify --installPath "%vsdir%" --add Microsoft.VisualStudio.Component.VC.%vc_ver%.x86.x64 Microsoft.VisualStudio.Component.VC.%vc_ver%.ATL --includeRecommended --quiet --installWhileDownloading

if %ERRORLEVEL% neq 0 (
echo =========================== ERROR: ==============================
echo installing msvc failed with exit code %ERRORLEVEL%
echo you need to run as admin and VisualStudio to be closed
echo =================================================================
exit %ERRORLEVEL%
)

echo installed msvc
%__call_SetupBuildEnvironment%

:end
set vs
set vc

1 change: 1 addition & 0 deletions .ci/Scripts/install_msvc.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
call "%~dp0\getvars.bat" install-msvc
138 changes: 138 additions & 0 deletions .ci/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
name: $(Date:yyyyMMdd)$(Rev:-rr)

trigger:
- uipath

parameters:
- name: PublishNuGets
displayName: 'Publish the NuGet Packages'
type: boolean
default: false

variables:
${{ if eq(variables['Build.SourceBranchName'], 'uipath') }}:
CreateGitTag: true
PackageVersionSuffix: '$(Build.BuildNumber)'
${{ else }}:
CreateGitTag: false
PackageVersionSuffix: '$(Build.BuildNumber)-dev'

pool:
vmImage: 'windows-2022'
demands:
- msbuild
- visualstudio

steps:
- checkout: self
persistCredentials: true

- task: NuGetToolInstaller@1
displayName: 'Use NuGet'

- task: NuGetAuthenticate@1

- script: .\.ci\Scripts\install_msvc
displayName: install_msvc

- script: |
call .ci\Scripts\getVars
echo on
cmake --version
perl -v
msbuild -version
cl

set
name: getVersions

- script: .\.ci\Scripts\getOpenSsl
displayName: getOpenSsl
- script: .\.ci\Scripts\buildOpenSsl
displayName: buildOpenSsl
- script: .\.ci\Scripts\buildFreeRDP Release
displayName: buildFreeRDP

- task: PublishPipelineArtifact@1
name: publishFreeRDPOnly
inputs:
targetPath: '.'
artifactName: 'freeRdpOnly'
parallel: true

- task: PublishPipelineArtifact@1
name: publishOpenSSL
inputs:
targetPath: '..\OpenSSL-VC-64'
artifactName: 'OpenSSL-VC-64'
parallel: true

- task: NuGetCommand@2
displayName: restore
inputs:
command: 'restore'
restoreSolution: 'UiPath.FreeRdpClient\UiPath.FreeRdpClient.sln'

- task: MSBuild@1
displayName: build
inputs:
solution: 'UiPath.FreeRdpClient\UiPath.FreeRdpClient.sln'
platform: 'x64'
configuration: 'Release'
msbuildArchitecture: 'x64'
msbuildArguments: "/p:VersionSuffix=$(PackageVersionSuffix)"

- task: DotNetCoreCLI@2
displayName: 'test'
inputs:
command: 'test'
configuration: 'Release'
arguments: '--no-build --configuration Release'
projects: 'UiPath.FreeRdpClient\**\*.Tests.csproj'

- task: MSBuild@1
displayName: restore (UseNugetRef)
inputs:
solution: 'UiPath.FreeRdpClient\UiPath.FreeRdpClient.sln'
platform: 'x64'
configuration: 'Release'
msbuildArchitecture: 'x64'
msbuildArguments: "/t:restore /p:VersionSuffix=$(PackageVersionSuffix) /p:UseNugetRef=true"

- task: MSBuild@1
displayName: build (UseNugetRef)
inputs:
solution: 'UiPath.FreeRdpClient\UiPath.FreeRdpClient.sln'
platform: 'x64'
configuration: 'Release'
msbuildArchitecture: 'x64'
msbuildArguments: "/p:VersionSuffix=$(PackageVersionSuffix) /p:UseNugetRef=true"

- task: DotNetCoreCLI@2
displayName: 'test (UseNugetRef)'
inputs:
command: 'test'
configuration: 'Release'
arguments: '--no-build --configuration Release /p:UseNugetRef=true'
projects: 'UiPath.FreeRdpClient\**\*.Tests.csproj'

- task: NuGetCommand@2
${{ if eq(parameters.PublishNuGets, true) }}:
displayName: '(Enabled) NuGet Push to UiPath-Internal'
condition: succeeded()
${{ if eq(parameters.PublishNuGets, false) }}:
displayName: '(Disabled) NuGet Push to UiPath-Internal'
condition: false
inputs:
command: push
packagesToPush: 'Output\nugets\UiPath.FreeRdpClient.*.nupkg;Output\nugets\UiPath.SessionTools.*.nupkg'
publishVstsFeed: '5b98d55c-1b14-4a03-893f-7a59746f1246/788028a9-5a01-48ee-b925-3af51ae46294'

- ${{ if and(eq(parameters.PublishNuGets, true), eq(variables['CreateGitTag'], true)) }}:
- pwsh: |
$tag = (ls 'Output\nugets\UiPath.FreeRdpClient.*.nupkg').BaseName
git tag $tag
git push origin $tag
echo "Pushed tag $tag"
name: gitTag
condition: succeeded()
11 changes: 7 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -63,13 +63,14 @@ Debug-*
Release-*

# Windows
*.vcxproj
*.vcxproj.*
[!UiPath.NoGuiFreeRdpClient]\**\*.vcxproj
[!UiPath.NoGuiFreeRdpClient]\**\*.vcxproj.*
*.vcxproj.user
*.vcproj
*.vcproj.*
*.aps
*.sdf
*.sln
[!UiPath.NoGuiFreeRdpClient]\**\*.sln
*.suo
*.ncb
*.opensdf
Expand All @@ -85,7 +86,6 @@ RelWithDebInfo
*.resource.txt
*.embed.manifest*
*.intermediate.manifest*
version.rc
*.VC.db
*.VC.opendb

Expand Down Expand Up @@ -152,3 +152,6 @@ packaging/deb/freerdp-nightly/freerdp-nightly-dbg
# VisualStudio Code
.vscode
cache/
/**/.vs
/**/obj
/Output/nugets
66 changes: 45 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,54 @@
# FreeRDP: A Remote Desktop Protocol Implementation
## UiPath fork of FreeRDP

FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license.
Enjoy the freedom of using your software wherever you want, the way you want it, in a world where
interoperability can finally liberate your computing experience.
This repo forks the FreeRDP repo, thus allowing us to make changes that fit our needs and augment the codebase with other components.
From time to time there is a need to merge the changes from the original repo into this one.

## Resources
### ❗When updating the FreeRDP library from the official repo, please update the following in this file (README.md):

Project website: https://www.freerdp.com/
Issue tracker: https://github.com/FreeRDP/FreeRDP/issues
Sources: https://github.com/FreeRDP/FreeRDP/
Downloads: https://pub.freerdp.com/releases/
Wiki: https://github.com/FreeRDP/FreeRDP/wiki
API documentation: https://pub.freerdp.com/api/
|**Original repository tag/branch used:**| `2.5.0` |
| --- | --- |
|**Original corresponding commit hash:**| `d50aef95520df4216c638495a6049125c00742cb` |

IRC channel: #freerdp @ irc.freenode.net
Mailing list: https://lists.sourceforge.net/lists/listinfo/freerdp-devel

## Microsoft Open Specifications
### Build instructions
* Visual Studio 2022 installed in `C:\Program Files` required.

Information regarding the Microsoft Open Specifications can be found at:
http://www.microsoft.com/openspecifications/
* Install [StrawberryPerl](http://strawberryperl.com). Make sure the `perl` command is in PATH.
You may try on newer Windows 10:
```
winget install -e --id StrawberryPerl.StrawberryPerl
```

A list of reference documentation is maintained here:
https://github.com/FreeRDP/FreeRDP/wiki/Reference-Documentation
#### Build FreeRDP and Build OpenSSL (dependency for FreeRDP)

## Compilation
> Use a developer console for VS 2022 instead of normal PowerShell or CMD, the commands require `nmake`

Instructions on how to get started compiling FreeRDP can be found on the wiki:
https://github.com/FreeRDP/FreeRDP/wiki/Compilation
* Steps
* Clone [OpenSSL](https://github.com/openssl/openssl) to `..\openssl` && Checkout tag `OpenSSL_1_0_2u` (getOpenSsl)
* Generate OpenSSL build to `..\OpenSSL-VC-64`. (buildOpenSsl)
* Use CMake to generate and then build Visual Studio 2022 solutions. (BuildFreeRDP)
* The freerdp solution is generated in `.\Build\x64\` directories.

* Scripts
* Simple
```
cd .ci/Scripts
.\PrepareFreeRdpDev
```
* or detailed
```
cd .ci/Scripts
.\getOpenSsl
.\buildOpenSsl
.\buildFreeRDP Debug
```

### Work on the FreeRdpClient
* Open [UiPath.FreeRdpClient/UiPath.FreeRdpClient.sln](file://UiPath.FreeRdpClient/UiPath.FreeRdpClient.sln)
* To test with a nugetRef instead of projectRef edit the [UiPath.FreeRdp.Tests.csproj](file://UiPath.FreeRdpClient/UiPath.FreeRdpClient.Tests/UiPath.FreeRdp.Tests.csproj)
search for: `<When Condition="'$(UseNugetRef)'!=''">`

#### Running unit tests

* Run Visual Studio as Admin
* Make sure RDP is enabled on local machine - `View advanced system settings > Remote tab > Allow remote connections to this computer`
Loading
Loading