From 1fb186fd2a5711c0f38e4fa8e3003c5c19b563c4 Mon Sep 17 00:00:00 2001 From: Kingtous Date: Thu, 25 Aug 2022 17:35:45 +0800 Subject: [PATCH] feat: manjaro/arch build.py --- build.py | 34 ++++++++++++++++++++++++++-------- flutter/rustdesk.desktop | 19 +++++++++++++++++++ flutter/rustdesk.service | 16 ++++++++++++++++ src/core_main.rs | 4 ++++ 4 files changed, 65 insertions(+), 8 deletions(-) create mode 100644 flutter/rustdesk.desktop create mode 100644 flutter/rustdesk.service diff --git a/build.py b/build.py index 341f4f4e6..3b5555b42 100755 --- a/build.py +++ b/build.py @@ -66,6 +66,8 @@ def make_parser(): default='', help='Integrate features, windows only.' 'Available: IddDriver, PrivacyMode. Special value is "ALL" and empty "". Default is empty.') + parser.add_argument('--flutter', action='store_true', + help='Build flutter package', default=False) parser.add_argument( '--hwcodec', action='store_true', @@ -114,6 +116,8 @@ def get_features(args): features.extend(get_rc_features(args)) if args.hwcodec: features.append('hwcodec') + if args.flutter: + features.append('flutter') print("features:", features) return features @@ -135,6 +139,7 @@ def main(): os.system('git checkout src/ui/common.tis') version = get_version() features = ",".join(get_features(args)) + flutter = args.flutter if windows: os.system('cargo build --release --features ' + features) # os.system('upx.exe target/release/rustdesk.exe') @@ -147,14 +152,26 @@ def main(): print('Not signed') os.system(f'cp -rf target/release/RustDesk.exe rustdesk-{version}-setdown.exe') elif os.path.isfile('/usr/bin/pacman'): - os.system('cargo build --release --features ' + features) - os.system('git checkout src/ui/common.tis') - os.system('strip target/release/rustdesk') - os.system("sed -i 's/pkgver=.*/pkgver=%s/g' PKGBUILD" % version) - # pacman -S -needed base-devel - os.system('HBB=`pwd` makepkg -f') - os.system('mv rustdesk-%s-0-x86_64.pkg.tar.zst rustdesk-%s-manjaro-arch.pkg.tar.zst' % (version, version)) - # pacman -U ./rustdesk.pkg.tar.zst + if flutter: + os.chdir('flutter') + os.system('flutter build linux --release') + os.system('strip build/linux/x64/release/liblibrustdesk.so') + os.system("sed -i 's/pkgver=.*/pkgver=%s/g' PKGBUILD" % version) + # pacman -S -needed base-devel + os.system('HBB=`pwd` makepkg -f') + os.system( + 'mv rustdesk-%s-0-x86_64.pkg.tar.zst ../rustdesk-%s-manjaro-arch.pkg.tar.zst' % (version, version)) + os.chdir('..') + else: + os.system('cargo build --release --features ' + features) + os.system('git checkout src/ui/common.tis') + os.system('strip target/release/rustdesk') + os.system("sed -i 's/pkgver=.*/pkgver=%s/g' PKGBUILD" % version) + # pacman -S -needed base-devel + os.system('HBB=`pwd` makepkg -f') + os.system( + 'mv rustdesk-%s-0-x86_64.pkg.tar.zst rustdesk-%s-manjaro-arch.pkg.tar.zst' % (version, version)) + # pacman -U ./rustdesk.pkg.tar.zst elif os.path.isfile('/usr/bin/yum'): os.system('cargo build --release --features ' + features) os.system('strip target/release/rustdesk') @@ -210,6 +227,7 @@ rcodesign notarize --api-issuer 69a6de7d-2907-47e3-e053-5b8c7c11a4d1 --api-key 9 else: print('Not signed') else: + # buid deb package os.system('mv target/release/bundle/deb/rustdesk*.deb ./rustdesk.deb') os.system('dpkg-deb -R rustdesk.deb tmpdeb') os.system('mkdir -p tmpdeb/usr/share/rustdesk/files/systemd/') diff --git a/flutter/rustdesk.desktop b/flutter/rustdesk.desktop new file mode 100644 index 000000000..aca57eeff --- /dev/null +++ b/flutter/rustdesk.desktop @@ -0,0 +1,19 @@ +[Desktop Entry] +Version=1.2.0 +Name=RustDesk +GenericName=Remote Desktop +Comment=Remote Desktop +Exec=/usr/lib/rustdesk/flutter_hbb %u +Icon=/usr/share/rustdesk/files/rustdesk.png +Terminal=false +Type=Application +StartupNotify=true +Categories=Network;RemoteAccess;GTK; +Keywords=internet; +Actions=new-window; + +X-Desktop-File-Install-Version=0.23 + +[Desktop Action new-window] +Name=Open a New Window + diff --git a/flutter/rustdesk.service b/flutter/rustdesk.service new file mode 100644 index 000000000..422d9e387 --- /dev/null +++ b/flutter/rustdesk.service @@ -0,0 +1,16 @@ +[Unit] +Description=RustDesk +Requires=network.target +After=systemd-user-sessions.service + +[Service] +Type=simple +ExecStart=/usr/lib/rustdesk/flutter_hbb --service +PIDFile=/run/rustdesk.pid +KillMode=mixed +TimeoutStopSec=30 +User=root +LimitNOFILE=100000 + +[Install] +WantedBy=multi-user.target diff --git a/src/core_main.rs b/src/core_main.rs index 2603e000e..c780a1cb0 100644 --- a/src/core_main.rs +++ b/src/core_main.rs @@ -19,6 +19,10 @@ pub fn core_main() -> bool { start_os_service(); return false; } + if args[1] == "--server" { + // TODO: server + return false; + } } true }