3232 TAG_NAME : " ${{ inputs.upload-tag }}"
3333 VCPKG_BINARY_SOURCES : " clear;x-gha,readwrite"
3434 # vcpkg version: 2025.01.13
35+ # If we change the `VCPKG COMMIT_ID`, please remember:
36+ # 1. Call `$VCPKG_ROOT/vcpkg x-update-baseline` to update the baseline in `vcpkg.json`.
37+ # Or we may face build issue like
38+ # https://github.com/rustdesk/rustdesk/actions/runs/14414119794/job/40427970174
39+ # 2. Update the `VCPKG_COMMIT_ID` in `ci.yml` and `playground.yml`.
3540 VCPKG_COMMIT_ID : " 6f29f12e82a8293156836ad81cc9bf5af41fe836"
36- VERSION : " 1.3.7 "
41+ VERSION : " 1.4.0 "
3742 NDK_VERSION : " r27c"
3843 # signing keys env variable checks
3944 ANDROID_SIGNING_KEY : " ${{ secrets.ANDROID_SIGNING_KEY }}"
@@ -167,14 +172,44 @@ jobs:
167172
168173 - name : Build rustdesk
169174 run : |
175+ # Windows: build RustDesk
176+ python3 .\build.py --portable --hwcodec --flutter --vram --skip-portable-pack
177+ mv ./flutter/build/windows/x64/runner/Release ./rustdesk
178+
179+ # Download usbmmidd_v2.zip and extract it to ./rustdesk
170180 Invoke-WebRequest -Uri https://github.com/rustdesk-org/rdev/releases/download/usbmmidd_v2/usbmmidd_v2.zip -OutFile usbmmidd_v2.zip
171181 Expand-Archive usbmmidd_v2.zip -DestinationPath .
172- python3 .\build.py --portable --hwcodec --flutter --vram --skip-portable-pack
173182 Remove-Item -Path usbmmidd_v2\Win32 -Recurse
174183 Remove-Item -Path "usbmmidd_v2\deviceinstaller64.exe", "usbmmidd_v2\deviceinstaller.exe", "usbmmidd_v2\usbmmidd.bat"
175- mv ./flutter/build/windows/x64/runner/Release ./rustdesk
176184 mv -Force .\usbmmidd_v2 ./rustdesk
177185
186+ # Download printer driver files and extract them to ./rustdesk
187+ try {
188+ Invoke-WebRequest -Uri https://github.com/rustdesk/hbb_common/releases/download/driver/rustdesk_printer_driver_v4.zip -OutFile rustdesk_printer_driver_v4.zip
189+ Invoke-WebRequest -Uri https://github.com/rustdesk/hbb_common/releases/download/driver/printer_driver_adapter.zip -OutFile printer_driver_adapter.zip
190+ Invoke-WebRequest -Uri https://github.com/rustdesk/hbb_common/releases/download/driver/sha256sums -OutFile sha256sums
191+
192+ # Check and move the files
193+ $checksum_driver = (Select-String -Path .\sha256sums -Pattern '^([a-fA-F0-9]{64}) \*rustdesk_printer_driver_v4\.zip$').Matches.Groups[1].Value
194+ $downloadsum_driver = Get-FileHash -Path rustdesk_printer_driver_v4.zip -Algorithm SHA256
195+ $checksum_dll = (Select-String -Path .\sha256sums -Pattern '^([a-fA-F0-9]{64}) \*printer_driver_adapter\.zip$').Matches.Groups[1].Value
196+ $downloadsum_dll = Get-FileHash -Path printer_driver_adapter.zip -Algorithm SHA256
197+ if ($checksum_driver -eq $downloadsum_driver.Hash -and $checksum_dll -eq $downloadsum_dll.Hash) {
198+ Write-Output "rustdesk_printer_driver_v4, checksums match, extract the file."
199+ Expand-Archive rustdesk_printer_driver_v4.zip -DestinationPath .
200+ mkdir ./rustdesk/drivers
201+ mv -Force .\rustdesk_printer_driver_v4 ./rustdesk/drivers/RustDeskPrinterDriver
202+ Expand-Archive printer_driver_adapter.zip -DestinationPath .
203+ mv -Force .\printer_driver_adapter.dll ./rustdesk
204+ } elseif ($checksum_driver -ne $downloadsum_driver.Hash) {
205+ Write-Output "rustdesk_printer_driver_v4, checksums do not match, ignore the file."
206+ } else {
207+ Write-Output "printer_driver_adapter.dll, checksums do not match, ignore the file."
208+ }
209+ } catch {
210+ Write-Host "Ingore the printer driver error."
211+ }
212+
178213 - name : find Runner.res
179214 # Windows: find Runner.res (compiled from ./flutter/windows/runner/Runner.rc), copy to ./Runner.res
180215 # Runner.rc does not contain actual version, but Runner.res does
@@ -423,7 +458,7 @@ jobs:
423458
424459 - name : Build rustdesk
425460 run : |
426- ./build.py --flutter --hwcodec
461+ ./build.py --flutter --hwcodec --unix-file-copy-paste
427462
428463 - name : create unsigned dmg
429464 if : env.UPLOAD_ARTIFACT == 'true'
@@ -833,7 +868,7 @@ jobs:
833868 sed -i -e "s/osx_minimum_system_version = \"[0-9]*.[0-9]*\"/osx_minimum_system_version = \"${MIN_MACOS_VERSION}\"/" Cargo.toml
834869 sed -i -e "s/MACOSX_DEPLOYMENT_TARGET = [0-9]*.[0-9]*;/MACOSX_DEPLOYMENT_TARGET = ${MIN_MACOS_VERSION};/" flutter/macos/Runner.xcodeproj/project.pbxproj
835870 fi
836- ./build.py --flutter --hwcodec ${{ matrix.job.extra-build-args }}
871+ ./build.py --flutter --hwcodec --unix-file-copy-paste ${{ matrix.job.extra-build-args }}
837872
838873 - name : create unsigned dmg
839874 if : env.UPLOAD_ARTIFACT == 'true'
@@ -931,21 +966,21 @@ jobs:
931966 - {
932967 arch : aarch64,
933968 target : aarch64-linux-android,
934- os : ubuntu-20 .04,
969+ os : ubuntu-22 .04,
935970 reltype : release,
936971 suffix : " " ,
937972 }
938973 - {
939974 arch : armv7,
940975 target : armv7-linux-androideabi,
941- os : ubuntu-20 .04,
976+ os : ubuntu-22 .04,
942977 reltype : release,
943978 suffix : " " ,
944979 }
945980 - {
946981 arch : x86_64,
947982 target : x86_64-linux-android,
948- os : ubuntu-20 .04,
983+ os : ubuntu-22 .04,
949984 reltype : release,
950985 suffix : " " ,
951986 }
@@ -982,7 +1017,8 @@ jobs:
9821017 libayatana-appindicator3-dev \
9831018 libasound2-dev \
9841019 libc6-dev \
985- libclang-10-dev \
1020+ libclang-11-dev \
1021+ libunwind-dev \
9861022 libgstreamer1.0-dev \
9871023 libgstreamer-plugins-base1.0-dev \
9881024 libgtk-3-dev \
@@ -994,7 +1030,7 @@ jobs:
9941030 libxcb-xfixes0-dev \
9951031 libxdo-dev \
9961032 libxfixes-dev \
997- llvm-10 -dev \
1033+ llvm-11 -dev \
9981034 nasm \
9991035 ninja-build \
10001036 openjdk-17-jdk-headless \
@@ -1213,7 +1249,7 @@ jobs:
12131249 needs : [build-rustdesk-android]
12141250 name : build rustdesk android universal apk
12151251 if : ${{ inputs.upload-artifact }}
1216- runs-on : ubuntu-20 .04
1252+ runs-on : ubuntu-22 .04
12171253 env :
12181254 reltype : release
12191255 x86_target : " " # can be ",android-x86"
@@ -1251,7 +1287,8 @@ jobs:
12511287 libayatana-appindicator3-dev \
12521288 libasound2-dev \
12531289 libc6-dev \
1254- libclang-10-dev \
1290+ libclang-11-dev \
1291+ libunwind-dev \
12551292 libgstreamer1.0-dev \
12561293 libgstreamer-plugins-base1.0-dev \
12571294 libgtk-3-dev \
@@ -1263,7 +1300,7 @@ jobs:
12631300 libxcb-xfixes0-dev \
12641301 libxdo-dev \
12651302 libxfixes-dev \
1266- llvm-10 -dev \
1303+ llvm-11 -dev \
12671304 nasm \
12681305 ninja-build \
12691306 openjdk-17-jdk-headless \
@@ -1403,7 +1440,7 @@ jobs:
14031440 arch : x86_64,
14041441 target : x86_64-unknown-linux-gnu,
14051442 distro : ubuntu18.04,
1406- on : ubuntu-20 .04,
1443+ on : ubuntu-22 .04,
14071444 deb_arch : amd64,
14081445 vcpkg-triplet : x64-linux,
14091446 }
@@ -1597,7 +1634,7 @@ jobs:
15971634 export JOBS=""
15981635 fi
15991636 echo $JOBS
1600- cargo build --lib $JOBS --features hwcodec,flutter --release
1637+ cargo build --lib $JOBS --features hwcodec,flutter,unix-file-copy-paste --release
16011638 rm -rf target/release/deps target/release/build
16021639 rm -rf ~/.cargo
16031640
@@ -1745,12 +1782,12 @@ jobs:
17451782 - {
17461783 arch : x86_64,
17471784 target : x86_64-unknown-linux-gnu,
1748- on : ubuntu-20 .04,
1785+ on : ubuntu-22 .04,
17491786 distro : ubuntu18.04,
17501787 deb_arch : amd64,
17511788 sciter_arch : x64,
17521789 vcpkg-triplet : x64-linux,
1753- extra_features : " ,hwcodec" ,
1790+ extra_features : " ,hwcodec,unix-file-copy-paste " ,
17541791 }
17551792 - {
17561793 arch : armv7,
@@ -1760,7 +1797,7 @@ jobs:
17601797 deb_arch : armhf,
17611798 sciter_arch : arm32,
17621799 vcpkg-triplet : arm-linux,
1763- extra_features : " " ,
1800+ extra_features : " ,unix-file-copy-paste " ,
17641801 }
17651802 steps :
17661803 - name : Export GitHub Actions cache environment variables
@@ -1959,7 +1996,7 @@ jobs:
19591996 build-appimage :
19601997 name : Build appimage ${{ matrix.job.target }}
19611998 needs : [build-rustdesk-linux]
1962- runs-on : ubuntu-20 .04
1999+ runs-on : ubuntu-22 .04
19632000 if : ${{ inputs.upload-artifact }}
19642001 strategy :
19652002 fail-fast : false
@@ -1988,7 +2025,8 @@ jobs:
19882025 run : |
19892026 # install libarchive-tools for bsdtar command used in AppImageBuilder.yml
19902027 sudo apt-get update -y
1991- sudo apt-get install -y libarchive-tools
2028+ # https://github.com/AppImage/AppImageKit/wiki/FUSE
2029+ sudo apt-get install -y libarchive-tools libfuse2
19922030 # set-up appimage-builder
19932031 pushd /tmp
19942032 wget -O appimage-builder-x86_64.AppImage https://github.com/AppImageCrafters/appimage-builder/releases/download/v1.1.0/appimage-builder-1.1.0-x86_64.AppImage
@@ -2022,14 +2060,14 @@ jobs:
20222060 - {
20232061 target : x86_64-unknown-linux-gnu,
20242062 distro : ubuntu18.04,
2025- on : ubuntu-20 .04,
2063+ on : ubuntu-22 .04,
20262064 arch : x86_64,
20272065 suffix : " " ,
20282066 }
20292067 - {
20302068 target : x86_64-unknown-linux-gnu,
20312069 distro : ubuntu18.04,
2032- on : ubuntu-20 .04,
2070+ on : ubuntu-22 .04,
20332071 arch : x86_64,
20342072 suffix : " -sciter" ,
20352073 }
@@ -2094,7 +2132,7 @@ jobs:
20942132
20952133 build-rustdesk-web :
20962134 name : build-rustdesk-web
2097- runs-on : ubuntu-20 .04
2135+ runs-on : ubuntu-22 .04
20982136 strategy :
20992137 fail-fast : false
21002138 env :
0 commit comments