diff --git a/.gitignore b/.gitignore index da52e1dc4..41ab9c504 100644 --- a/.gitignore +++ b/.gitignore @@ -21,7 +21,18 @@ sciter.dll src/bridge_generated.rs *deb rustdesk +*.cache # appimage appimage/AppDir appimage/*.AppImage -appimage/appimage-build \ No newline at end of file +appimage/appimage-build +# flutter +flutter/linux/build/** +flutter/linux/cmake-build-debug/** +# flatpak +flatpak/.flatpak-builder/** +flatpak/ccache/** +flatpak/.flatpak-builder/build/** +flatpak/.flatpak-builder/shared-modules/** +flatpak/.flatpak-builder/shared-modules/*.tar.xz +flatpak/.flatpak-builder/debian-binary \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 303d18f1e..5c3313336 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4201,7 +4201,7 @@ dependencies = [ [[package]] name = "rustdesk" -version = "1.1.10" +version = "1.2.0" dependencies = [ "android_logger 0.11.1", "arboard", diff --git a/build.rs b/build.rs index 01fe8ada1..a77d7100d 100644 --- a/build.rs +++ b/build.rs @@ -105,6 +105,7 @@ fn main() { // there is problem with cfg(target_os) in build.rs, so use our workaround // let target_os = std::env::var("CARGO_CFG_TARGET_OS").unwrap(); // if target_os == "android" || target_os == "ios" { + #[cfg(feature = "flutter")] gen_flutter_rust_bridge(); // return; // } diff --git a/flatpak/rustdesk.yml b/flatpak/rustdesk.yml new file mode 100644 index 000000000..3d7936635 --- /dev/null +++ b/flatpak/rustdesk.yml @@ -0,0 +1,31 @@ +app-id: org.rustdesk.rustdesk +runtime: org.freedesktop.Platform +runtime-version: '21.08' +sdk: org.freedesktop.Sdk +command: rustdesk +modules: + # install appindicator + - shared-modules/libappindicator/libappindicator-gtk3-12.10.json + - name: rustdesk + buildsystem: simple + build-commands: + - bsdtar -zxvf rustdesk-1.2.0.deb + - tar -xvf ./data.tar.xz + - cp -r ./usr /app/ + - rm /app/usr/bin/rustdesk + - mkdir -p /app/bin && ln -s /app/usr/lib/rustdesk/flutter_hbb /app/bin/rustdesk + sources: + # Note: replace to deb files with url + - type: file + path: ../rustdesk-1.2.0.deb + +finish-args: + # X11 + XShm access + - --share=ipc + - --socket=x11 + # Wayland access + - --socket=wayland + # Needs to talk to the network: + - --share=network + # Needs to save files locally + - --filesystem=xdg-documents \ No newline at end of file diff --git a/flatpak/shared-modules b/flatpak/shared-modules new file mode 160000 index 000000000..cecc93886 --- /dev/null +++ b/flatpak/shared-modules @@ -0,0 +1 @@ +Subproject commit cecc93886ce839ec49b0041f072a573327acdf08 diff --git a/flutter/PKGBUILD b/flutter/PKGBUILD new file mode 100644 index 000000000..3d2981283 --- /dev/null +++ b/flutter/PKGBUILD @@ -0,0 +1,33 @@ +pkgname=rustdesk +pkgver=1.2.0 +pkgrel=0 +epoch= +pkgdesc="" +arch=('x86_64') +url="" +license=('GPL-3.0') +groups=() +depends=('gtk3' 'xdotool' 'libxcb' 'libxfixes' 'alsa-lib' 'pulseaudio' 'ttf-arphic-uming' 'python-pip' 'curl' 'libappindicator-gtk3') +makedepends=() +checkdepends=() +optdepends=() +provides=() +conflicts=() +replaces=() +backup=() +options=() +install=../pacman_install +changelog= +noextract=() +md5sums=() #generate with 'makepkg -g' + +package() { + mkdir -p "${pkgdir}/usr/lib/rustdesk" && cp -r ${HBB}/build/linux/x64/release/bundle/* -t "${pkgdir}/usr/lib/rustdesk" + cp ${HBB}/build/linux/x64/release/liblibrustdesk.so "${pkgdir}/usr/lib/rustdesk/librustdesk.so" + mkdir -p "${pkgdir}/usr/bin" + pushd ${pkgdir} && ln -s /usr/lib/rustdesk/flutter_hbb usr/bin/rustdesk && popd + install -Dm 644 $HBB/rustdesk.service -t "${pkgdir}/usr/share/rustdesk/files" + install -Dm 644 $HBB/rustdesk.desktop -t "${pkgdir}/usr/share/rustdesk/files" + # install -Dm 644 $HBB/../pynput_service.py -t "${pkgdir}/usr/share/rustdesk/files" + install -Dm 644 $HBB/../128x128@2x.png "${pkgdir}/usr/share/rustdesk/files/rustdesk.png" +} diff --git a/flutter/rustdesk.service.user b/flutter/rustdesk.service.user new file mode 100644 index 000000000..a349d0361 --- /dev/null +++ b/flutter/rustdesk.service.user @@ -0,0 +1,15 @@ +[Unit] +Description=RustDesk user service (--server) + +[Service] +Type=simple +ExecStart=/usr/lib/rustdesk/flutter_hbb --server +PIDFile=/run/rustdesk.user.pid +KillMode=mixed +TimeoutStopSec=30 +LimitNOFILE=100000 +Restart=on-failure +RestartSec=3 + +[Install] +WantedBy=multi-user.target diff --git a/src/ui.rs b/src/ui.rs index 7457c2ff5..fd4bfe1a8 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -39,7 +39,7 @@ use crate::ui_interface::{ mod cm; #[cfg(feature = "inline")] -mod inline; +pub mod inline; #[cfg(target_os = "macos")] mod macos; pub mod remote; diff --git a/src/ui_session_interface.rs b/src/ui_session_interface.rs index 7eabe1510..43cd35754 100644 --- a/src/ui_session_interface.rs +++ b/src/ui_session_interface.rs @@ -680,7 +680,7 @@ impl Session { pub fn get_chatbox(&self) -> String { #[cfg(feature = "inline")] - return super::inline::get_chatbox(); + return crate::ui::inline::get_chatbox(); #[cfg(not(feature = "inline"))] return "".to_owned(); }