chore: fix recursive os.system on my m1 in build.py, and modify windows
subsystem macro
This commit is contained in:
parent
6f28643ad3
commit
2678c503a0
184
build.py
184
build.py
@ -18,14 +18,11 @@ exe_path = 'target/release/' + hbb_name
|
|||||||
flutter_win_target_dir = 'flutter/build/windows/runner/Release/'
|
flutter_win_target_dir = 'flutter/build/windows/runner/Release/'
|
||||||
skip_cargo = False
|
skip_cargo = False
|
||||||
|
|
||||||
def custom_os_system(cmd):
|
def system2(cmd):
|
||||||
err = os._system(cmd)
|
err = os.system(cmd)
|
||||||
if err != 0:
|
if err != 0:
|
||||||
print(f"Error occurred when executing: {cmd}. Exiting.")
|
print(f"Error occurred when executing: {cmd}. Exiting.")
|
||||||
sys.exit(-1)
|
sys.exit(-1)
|
||||||
# replace prebuilt os.system
|
|
||||||
os._system = os.system
|
|
||||||
os.system = custom_os_system
|
|
||||||
|
|
||||||
def get_version():
|
def get_version():
|
||||||
with open("Cargo.toml", encoding="utf-8") as fh:
|
with open("Cargo.toml", encoding="utf-8") as fh:
|
||||||
@ -144,8 +141,8 @@ def generate_build_script_for_docker():
|
|||||||
# build rustdesk
|
# build rustdesk
|
||||||
./build.py --flutter --hwcodec
|
./build.py --flutter --hwcodec
|
||||||
''')
|
''')
|
||||||
os.system("chmod +x /tmp/build.sh")
|
system2("chmod +x /tmp/build.sh")
|
||||||
os.system("bash /tmp/build.sh")
|
system2("bash /tmp/build.sh")
|
||||||
|
|
||||||
|
|
||||||
def download_extract_features(features, res_dir):
|
def download_extract_features(features, res_dir):
|
||||||
@ -250,7 +247,7 @@ def get_features(args):
|
|||||||
|
|
||||||
def generate_control_file(version):
|
def generate_control_file(version):
|
||||||
control_file_path = "../res/DEBIAN/control"
|
control_file_path = "../res/DEBIAN/control"
|
||||||
os.system('/bin/rm -rf %s' % control_file_path)
|
system2('/bin/rm -rf %s' % control_file_path)
|
||||||
|
|
||||||
content = """Package: rustdesk
|
content = """Package: rustdesk
|
||||||
Version: %s
|
Version: %s
|
||||||
@ -268,45 +265,45 @@ Description: A remote control software.
|
|||||||
|
|
||||||
def ffi_bindgen_function_refactor():
|
def ffi_bindgen_function_refactor():
|
||||||
# workaround ffigen
|
# workaround ffigen
|
||||||
os.system(
|
system2(
|
||||||
'sed -i "s/ffi.NativeFunction<ffi.Bool Function(DartPort/ffi.NativeFunction<ffi.Uint8 Function(DartPort/g" flutter/lib/generated_bridge.dart')
|
'sed -i "s/ffi.NativeFunction<ffi.Bool Function(DartPort/ffi.NativeFunction<ffi.Uint8 Function(DartPort/g" flutter/lib/generated_bridge.dart')
|
||||||
|
|
||||||
|
|
||||||
def build_flutter_deb(version, features):
|
def build_flutter_deb(version, features):
|
||||||
if not skip_cargo:
|
if not skip_cargo:
|
||||||
os.system(f'cargo build --features {features} --lib --release')
|
system2(f'cargo build --features {features} --lib --release')
|
||||||
ffi_bindgen_function_refactor()
|
ffi_bindgen_function_refactor()
|
||||||
os.chdir('flutter')
|
os.chdir('flutter')
|
||||||
os.system('flutter build linux --release')
|
system2('flutter build linux --release')
|
||||||
os.system('mkdir -p tmpdeb/usr/bin/')
|
system2('mkdir -p tmpdeb/usr/bin/')
|
||||||
os.system('mkdir -p tmpdeb/usr/lib/rustdesk')
|
system2('mkdir -p tmpdeb/usr/lib/rustdesk')
|
||||||
os.system('mkdir -p tmpdeb/usr/share/rustdesk/files/systemd/')
|
system2('mkdir -p tmpdeb/usr/share/rustdesk/files/systemd/')
|
||||||
os.system('mkdir -p tmpdeb/usr/share/applications/')
|
system2('mkdir -p tmpdeb/usr/share/applications/')
|
||||||
os.system('mkdir -p tmpdeb/usr/share/polkit-1/actions')
|
system2('mkdir -p tmpdeb/usr/share/polkit-1/actions')
|
||||||
os.system('rm tmpdeb/usr/bin/rustdesk || true')
|
system2('rm tmpdeb/usr/bin/rustdesk || true')
|
||||||
os.system(
|
system2(
|
||||||
'cp -r build/linux/x64/release/bundle/* tmpdeb/usr/lib/rustdesk/')
|
'cp -r build/linux/x64/release/bundle/* tmpdeb/usr/lib/rustdesk/')
|
||||||
os.system(
|
system2(
|
||||||
'cp ../res/rustdesk.service tmpdeb/usr/share/rustdesk/files/systemd/')
|
'cp ../res/rustdesk.service tmpdeb/usr/share/rustdesk/files/systemd/')
|
||||||
os.system(
|
system2(
|
||||||
'cp ../res/128x128@2x.png tmpdeb/usr/share/rustdesk/files/rustdesk.png')
|
'cp ../res/128x128@2x.png tmpdeb/usr/share/rustdesk/files/rustdesk.png')
|
||||||
os.system(
|
system2(
|
||||||
'cp ../res/rustdesk.desktop tmpdeb/usr/share/applications/rustdesk.desktop')
|
'cp ../res/rustdesk.desktop tmpdeb/usr/share/applications/rustdesk.desktop')
|
||||||
os.system(
|
system2(
|
||||||
'cp ../res/rustdesk-link.desktop tmpdeb/usr/share/applications/rustdesk-link.desktop')
|
'cp ../res/rustdesk-link.desktop tmpdeb/usr/share/applications/rustdesk-link.desktop')
|
||||||
os.system(
|
system2(
|
||||||
'cp ../res/com.rustdesk.RustDesk.policy tmpdeb/usr/share/polkit-1/actions/')
|
'cp ../res/com.rustdesk.RustDesk.policy tmpdeb/usr/share/polkit-1/actions/')
|
||||||
os.system(
|
system2(
|
||||||
"echo \"#!/bin/sh\" >> tmpdeb/usr/share/rustdesk/files/polkit && chmod a+x tmpdeb/usr/share/rustdesk/files/polkit")
|
"echo \"#!/bin/sh\" >> tmpdeb/usr/share/rustdesk/files/polkit && chmod a+x tmpdeb/usr/share/rustdesk/files/polkit")
|
||||||
|
|
||||||
os.system('mkdir -p tmpdeb/DEBIAN')
|
system2('mkdir -p tmpdeb/DEBIAN')
|
||||||
generate_control_file(version)
|
generate_control_file(version)
|
||||||
os.system('cp -a ../res/DEBIAN/* tmpdeb/DEBIAN/')
|
system2('cp -a ../res/DEBIAN/* tmpdeb/DEBIAN/')
|
||||||
md5_file('usr/share/rustdesk/files/systemd/rustdesk.service')
|
md5_file('usr/share/rustdesk/files/systemd/rustdesk.service')
|
||||||
os.system('dpkg-deb -b tmpdeb rustdesk.deb;')
|
system2('dpkg-deb -b tmpdeb rustdesk.deb;')
|
||||||
|
|
||||||
os.system('/bin/rm -rf tmpdeb/')
|
system2('/bin/rm -rf tmpdeb/')
|
||||||
os.system('/bin/rm -rf ../res/DEBIAN/control')
|
system2('/bin/rm -rf ../res/DEBIAN/control')
|
||||||
os.rename('rustdesk.deb', '../rustdesk-%s.deb' % version)
|
os.rename('rustdesk.deb', '../rustdesk-%s.deb' % version)
|
||||||
os.chdir("..")
|
os.chdir("..")
|
||||||
|
|
||||||
@ -314,16 +311,16 @@ def build_flutter_deb(version, features):
|
|||||||
def build_flutter_dmg(version, features):
|
def build_flutter_dmg(version, features):
|
||||||
if not skip_cargo:
|
if not skip_cargo:
|
||||||
# set minimum osx build target, now is 10.14, which is the same as the flutter xcode project
|
# set minimum osx build target, now is 10.14, which is the same as the flutter xcode project
|
||||||
os.system(f'MACOSX_DEPLOYMENT_TARGET=10.14 cargo build --features {features} --lib --release')
|
system2(f'MACOSX_DEPLOYMENT_TARGET=10.14 cargo build --features {features} --lib --release')
|
||||||
# copy dylib
|
# copy dylib
|
||||||
os.system(
|
system2(
|
||||||
"cp target/release/liblibrustdesk.dylib target/release/librustdesk.dylib")
|
"cp target/release/liblibrustdesk.dylib target/release/librustdesk.dylib")
|
||||||
# ffi_bindgen_function_refactor()
|
# ffi_bindgen_function_refactor()
|
||||||
# limitations from flutter rust bridge
|
# limitations from flutter rust bridge
|
||||||
os.system('sed -i "" "s/char \*\*rustdesk_core_main(int \*args_len);//" flutter/macos/Runner/bridge_generated.h')
|
system2('sed -i "" "s/char \*\*rustdesk_core_main(int \*args_len);//" flutter/macos/Runner/bridge_generated.h')
|
||||||
os.chdir('flutter')
|
os.chdir('flutter')
|
||||||
os.system('flutter build macos --release')
|
system2('flutter build macos --release')
|
||||||
os.system(
|
system2(
|
||||||
"create-dmg rustdesk.dmg ./build/macos/Build/Products/Release/RustDesk.app")
|
"create-dmg rustdesk.dmg ./build/macos/Build/Products/Release/RustDesk.app")
|
||||||
os.rename("rustdesk.dmg", f"../rustdesk-{version}.dmg")
|
os.rename("rustdesk.dmg", f"../rustdesk-{version}.dmg")
|
||||||
os.chdir("..")
|
os.chdir("..")
|
||||||
@ -331,29 +328,29 @@ def build_flutter_dmg(version, features):
|
|||||||
|
|
||||||
def build_flutter_arch_manjaro(version, features):
|
def build_flutter_arch_manjaro(version, features):
|
||||||
if not skip_cargo:
|
if not skip_cargo:
|
||||||
os.system(f'cargo build --features {features} --lib --release')
|
system2(f'cargo build --features {features} --lib --release')
|
||||||
ffi_bindgen_function_refactor()
|
ffi_bindgen_function_refactor()
|
||||||
os.chdir('flutter')
|
os.chdir('flutter')
|
||||||
os.system('flutter build linux --release')
|
system2('flutter build linux --release')
|
||||||
os.system('strip build/linux/x64/release/bundle/lib/librustdesk.so')
|
system2('strip build/linux/x64/release/bundle/lib/librustdesk.so')
|
||||||
os.chdir('../res')
|
os.chdir('../res')
|
||||||
os.system('HBB=`pwd`/.. FLUTTER=1 makepkg -f')
|
system2('HBB=`pwd`/.. FLUTTER=1 makepkg -f')
|
||||||
|
|
||||||
|
|
||||||
def build_flutter_windows(version, features):
|
def build_flutter_windows(version, features):
|
||||||
if not skip_cargo:
|
if not skip_cargo:
|
||||||
os.system(f'cargo build --features {features} --lib --release')
|
system2(f'cargo build --features {features} --lib --release')
|
||||||
if not os.path.exists("target/release/librustdesk.dll"):
|
if not os.path.exists("target/release/librustdesk.dll"):
|
||||||
print("cargo build failed, please check rust source code.")
|
print("cargo build failed, please check rust source code.")
|
||||||
exit(-1)
|
exit(-1)
|
||||||
os.chdir('flutter')
|
os.chdir('flutter')
|
||||||
os.system('flutter build windows --release')
|
system2('flutter build windows --release')
|
||||||
os.chdir('..')
|
os.chdir('..')
|
||||||
shutil.copy2('target/release/deps/dylib_virtual_display.dll',
|
shutil.copy2('target/release/deps/dylib_virtual_display.dll',
|
||||||
flutter_win_target_dir)
|
flutter_win_target_dir)
|
||||||
os.chdir('libs/portable')
|
os.chdir('libs/portable')
|
||||||
os.system('pip3 install -r requirements.txt')
|
system2('pip3 install -r requirements.txt')
|
||||||
os.system(
|
system2(
|
||||||
f'python3 ./generate.py -f ../../{flutter_win_target_dir} -o . -e ../../{flutter_win_target_dir}/rustdesk.exe')
|
f'python3 ./generate.py -f ../../{flutter_win_target_dir} -o . -e ../../{flutter_win_target_dir}/rustdesk.exe')
|
||||||
os.chdir('../..')
|
os.chdir('../..')
|
||||||
if os.path.exists('./rustdesk_portable.exe'):
|
if os.path.exists('./rustdesk_portable.exe'):
|
||||||
@ -374,22 +371,15 @@ def main():
|
|||||||
parser = make_parser()
|
parser = make_parser()
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
shutil.copy2('Cargo.toml', 'Cargo.toml.bk')
|
|
||||||
shutil.copy2('src/main.rs', 'src/main.rs.bk')
|
|
||||||
if windows:
|
|
||||||
txt = open('src/main.rs', encoding='utf8').read()
|
|
||||||
with open('src/main.rs', 'wt', encoding='utf8') as fh:
|
|
||||||
fh.write(txt.replace(
|
|
||||||
'//#![windows_subsystem', '#![windows_subsystem'))
|
|
||||||
if os.path.exists(exe_path):
|
if os.path.exists(exe_path):
|
||||||
os.unlink(exe_path)
|
os.unlink(exe_path)
|
||||||
if os.path.isfile('/usr/bin/pacman'):
|
if os.path.isfile('/usr/bin/pacman'):
|
||||||
os.system('git checkout src/ui/common.tis')
|
system2('git checkout src/ui/common.tis')
|
||||||
version = get_version()
|
version = get_version()
|
||||||
features = ','.join(get_features(args))
|
features = ','.join(get_features(args))
|
||||||
flutter = args.flutter
|
flutter = args.flutter
|
||||||
if not flutter:
|
if not flutter:
|
||||||
os.system('python3 res/inline-sciter.py')
|
system2('python3 res/inline-sciter.py')
|
||||||
print(args.skip_cargo)
|
print(args.skip_cargo)
|
||||||
if args.skip_cargo:
|
if args.skip_cargo:
|
||||||
skip_cargo = True
|
skip_cargo = True
|
||||||
@ -397,55 +387,55 @@ def main():
|
|||||||
if windows:
|
if windows:
|
||||||
# build virtual display dynamic library
|
# build virtual display dynamic library
|
||||||
os.chdir('libs/virtual_display/dylib')
|
os.chdir('libs/virtual_display/dylib')
|
||||||
os.system('cargo build --release')
|
system2('cargo build --release')
|
||||||
os.chdir('../../..')
|
os.chdir('../../..')
|
||||||
|
|
||||||
if flutter:
|
if flutter:
|
||||||
build_flutter_windows(version, features)
|
build_flutter_windows(version, features)
|
||||||
return
|
return
|
||||||
os.system('cargo build --release --features ' + features)
|
system2('cargo build --release --features ' + features)
|
||||||
# os.system('upx.exe target/release/rustdesk.exe')
|
# system2('upx.exe target/release/rustdesk.exe')
|
||||||
os.system('mv target/release/rustdesk.exe target/release/RustDesk.exe')
|
system2('mv target/release/rustdesk.exe target/release/RustDesk.exe')
|
||||||
pa = os.environ.get('P')
|
pa = os.environ.get('P')
|
||||||
if pa:
|
if pa:
|
||||||
os.system(
|
system2(
|
||||||
f'signtool sign /a /v /p {pa} /debug /f .\\cert.pfx /t http://timestamp.digicert.com '
|
f'signtool sign /a /v /p {pa} /debug /f .\\cert.pfx /t http://timestamp.digicert.com '
|
||||||
'target\\release\\rustdesk.exe')
|
'target\\release\\rustdesk.exe')
|
||||||
else:
|
else:
|
||||||
print('Not signed')
|
print('Not signed')
|
||||||
os.system(
|
system2(
|
||||||
f'cp -rf target/release/RustDesk.exe rustdesk-{version}-win7-install.exe')
|
f'cp -rf target/release/RustDesk.exe rustdesk-{version}-win7-install.exe')
|
||||||
elif os.path.isfile('/usr/bin/pacman'):
|
elif os.path.isfile('/usr/bin/pacman'):
|
||||||
# pacman -S -needed base-devel
|
# pacman -S -needed base-devel
|
||||||
os.system("sed -i 's/pkgver=.*/pkgver=%s/g' res/PKGBUILD" % version)
|
system2("sed -i 's/pkgver=.*/pkgver=%s/g' res/PKGBUILD" % version)
|
||||||
if flutter:
|
if flutter:
|
||||||
build_flutter_arch_manjaro(version, features)
|
build_flutter_arch_manjaro(version, features)
|
||||||
else:
|
else:
|
||||||
os.system('cargo build --release --features ' + features)
|
system2('cargo build --release --features ' + features)
|
||||||
os.system('git checkout src/ui/common.tis')
|
system2('git checkout src/ui/common.tis')
|
||||||
os.system('strip target/release/rustdesk')
|
system2('strip target/release/rustdesk')
|
||||||
os.system('ln -s res/pacman_install && ln -s res/PKGBUILD')
|
system2('ln -s res/pacman_install && ln -s res/PKGBUILD')
|
||||||
os.system('HBB=`pwd` makepkg -f')
|
system2('HBB=`pwd` makepkg -f')
|
||||||
os.system('mv rustdesk-%s-0-x86_64.pkg.tar.zst rustdesk-%s-manjaro-arch.pkg.tar.zst' % (
|
system2('mv rustdesk-%s-0-x86_64.pkg.tar.zst rustdesk-%s-manjaro-arch.pkg.tar.zst' % (
|
||||||
version, version))
|
version, version))
|
||||||
# pacman -U ./rustdesk.pkg.tar.zst
|
# pacman -U ./rustdesk.pkg.tar.zst
|
||||||
elif os.path.isfile('/usr/bin/yum'):
|
elif os.path.isfile('/usr/bin/yum'):
|
||||||
os.system('cargo build --release --features ' + features)
|
system2('cargo build --release --features ' + features)
|
||||||
os.system('strip target/release/rustdesk')
|
system2('strip target/release/rustdesk')
|
||||||
os.system(
|
system2(
|
||||||
"sed -i 's/Version: .*/Version: %s/g' res/rpm.spec" % version)
|
"sed -i 's/Version: .*/Version: %s/g' res/rpm.spec" % version)
|
||||||
os.system('HBB=`pwd` rpmbuild -ba res/rpm.spec')
|
system2('HBB=`pwd` rpmbuild -ba res/rpm.spec')
|
||||||
os.system(
|
system2(
|
||||||
'mv $HOME/rpmbuild/RPMS/x86_64/rustdesk-%s-0.x86_64.rpm ./rustdesk-%s-fedora28-centos8.rpm' % (
|
'mv $HOME/rpmbuild/RPMS/x86_64/rustdesk-%s-0.x86_64.rpm ./rustdesk-%s-fedora28-centos8.rpm' % (
|
||||||
version, version))
|
version, version))
|
||||||
# yum localinstall rustdesk.rpm
|
# yum localinstall rustdesk.rpm
|
||||||
elif os.path.isfile('/usr/bin/zypper'):
|
elif os.path.isfile('/usr/bin/zypper'):
|
||||||
os.system('cargo build --release --features ' + features)
|
system2('cargo build --release --features ' + features)
|
||||||
os.system('strip target/release/rustdesk')
|
system2('strip target/release/rustdesk')
|
||||||
os.system(
|
system2(
|
||||||
"sed -i 's/Version: .*/Version: %s/g' res/rpm-suse.spec" % version)
|
"sed -i 's/Version: .*/Version: %s/g' res/rpm-suse.spec" % version)
|
||||||
os.system('HBB=`pwd` rpmbuild -ba res/rpm-suse.spec')
|
system2('HBB=`pwd` rpmbuild -ba res/rpm-suse.spec')
|
||||||
os.system(
|
system2(
|
||||||
'mv $HOME/rpmbuild/RPMS/x86_64/rustdesk-%s-0.x86_64.rpm ./rustdesk-%s-suse.rpm' % (
|
'mv $HOME/rpmbuild/RPMS/x86_64/rustdesk-%s-0.x86_64.rpm ./rustdesk-%s-suse.rpm' % (
|
||||||
version, version))
|
version, version))
|
||||||
# yum localinstall rustdesk.rpm
|
# yum localinstall rustdesk.rpm
|
||||||
@ -455,18 +445,18 @@ def main():
|
|||||||
build_flutter_dmg(version, features)
|
build_flutter_dmg(version, features)
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
# os.system(
|
# system2(
|
||||||
# 'mv target/release/bundle/deb/rustdesk*.deb ./flutter/rustdesk.deb')
|
# 'mv target/release/bundle/deb/rustdesk*.deb ./flutter/rustdesk.deb')
|
||||||
build_flutter_deb(version, features)
|
build_flutter_deb(version, features)
|
||||||
else:
|
else:
|
||||||
os.system('cargo bundle --release --features ' + features)
|
system2('cargo bundle --release --features ' + features)
|
||||||
if osx:
|
if osx:
|
||||||
os.system(
|
system2(
|
||||||
'strip target/release/bundle/osx/RustDesk.app/Contents/MacOS/rustdesk')
|
'strip target/release/bundle/osx/RustDesk.app/Contents/MacOS/rustdesk')
|
||||||
os.system(
|
system2(
|
||||||
'cp libsciter.dylib target/release/bundle/osx/RustDesk.app/Contents/MacOS/')
|
'cp libsciter.dylib target/release/bundle/osx/RustDesk.app/Contents/MacOS/')
|
||||||
# https://github.com/sindresorhus/create-dmg
|
# https://github.com/sindresorhus/create-dmg
|
||||||
os.system('/bin/rm -rf *.dmg')
|
system2('/bin/rm -rf *.dmg')
|
||||||
plist = "target/release/bundle/osx/RustDesk.app/Contents/Info.plist"
|
plist = "target/release/bundle/osx/RustDesk.app/Contents/Info.plist"
|
||||||
txt = open(plist).read()
|
txt = open(plist).read()
|
||||||
with open(plist, "wt") as fh:
|
with open(plist, "wt") as fh:
|
||||||
@ -476,7 +466,7 @@ def main():
|
|||||||
</dict>"""))
|
</dict>"""))
|
||||||
pa = os.environ.get('P')
|
pa = os.environ.get('P')
|
||||||
if pa:
|
if pa:
|
||||||
os.system('''
|
system2('''
|
||||||
# buggy: rcodesign sign ... path/*, have to sign one by one
|
# buggy: rcodesign sign ... path/*, have to sign one by one
|
||||||
# install rcodesign via cargo install apple-codesign
|
# install rcodesign via cargo install apple-codesign
|
||||||
#rcodesign sign --p12-file ~/.p12/rustdesk-developer-id.p12 --p12-password-file ~/.p12/.cert-pass --code-signature-flags runtime ./target/release/bundle/osx/RustDesk.app/Contents/MacOS/rustdesk
|
#rcodesign sign --p12-file ~/.p12/rustdesk-developer-id.p12 --p12-password-file ~/.p12/.cert-pass --code-signature-flags runtime ./target/release/bundle/osx/RustDesk.app/Contents/MacOS/rustdesk
|
||||||
@ -486,11 +476,11 @@ def main():
|
|||||||
codesign -s "Developer ID Application: {0}" --force --options runtime ./target/release/bundle/osx/RustDesk.app/Contents/MacOS/*
|
codesign -s "Developer ID Application: {0}" --force --options runtime ./target/release/bundle/osx/RustDesk.app/Contents/MacOS/*
|
||||||
codesign -s "Developer ID Application: {0}" --force --options runtime ./target/release/bundle/osx/RustDesk.app
|
codesign -s "Developer ID Application: {0}" --force --options runtime ./target/release/bundle/osx/RustDesk.app
|
||||||
'''.format(pa))
|
'''.format(pa))
|
||||||
os.system('create-dmg target/release/bundle/osx/RustDesk.app')
|
system2('create-dmg target/release/bundle/osx/RustDesk.app')
|
||||||
os.rename('RustDesk %s.dmg' %
|
os.rename('RustDesk %s.dmg' %
|
||||||
version, 'rustdesk-%s.dmg' % version)
|
version, 'rustdesk-%s.dmg' % version)
|
||||||
if pa:
|
if pa:
|
||||||
os.system('''
|
system2('''
|
||||||
# https://pyoxidizer.readthedocs.io/en/apple-codesign-0.14.0/apple_codesign.html
|
# https://pyoxidizer.readthedocs.io/en/apple-codesign-0.14.0/apple_codesign.html
|
||||||
# https://pyoxidizer.readthedocs.io/en/stable/tugger_code_signing.html
|
# https://pyoxidizer.readthedocs.io/en/stable/tugger_code_signing.html
|
||||||
# https://developer.apple.com/developer-id/
|
# https://developer.apple.com/developer-id/
|
||||||
@ -507,34 +497,32 @@ def main():
|
|||||||
print('Not signed')
|
print('Not signed')
|
||||||
else:
|
else:
|
||||||
# buid deb package
|
# buid deb package
|
||||||
os.system(
|
system2(
|
||||||
'mv target/release/bundle/deb/rustdesk*.deb ./rustdesk.deb')
|
'mv target/release/bundle/deb/rustdesk*.deb ./rustdesk.deb')
|
||||||
os.system('dpkg-deb -R rustdesk.deb tmpdeb')
|
system2('dpkg-deb -R rustdesk.deb tmpdeb')
|
||||||
os.system('mkdir -p tmpdeb/usr/share/rustdesk/files/systemd/')
|
system2('mkdir -p tmpdeb/usr/share/rustdesk/files/systemd/')
|
||||||
os.system(
|
system2(
|
||||||
'cp res/rustdesk.service tmpdeb/usr/share/rustdesk/files/systemd/')
|
'cp res/rustdesk.service tmpdeb/usr/share/rustdesk/files/systemd/')
|
||||||
os.system(
|
system2(
|
||||||
'cp res/128x128@2x.png tmpdeb/usr/share/rustdesk/files/rustdesk.png')
|
'cp res/128x128@2x.png tmpdeb/usr/share/rustdesk/files/rustdesk.png')
|
||||||
os.system(
|
system2(
|
||||||
'cp res/rustdesk.desktop tmpdeb/usr/share/applications/rustdesk.desktop')
|
'cp res/rustdesk.desktop tmpdeb/usr/share/applications/rustdesk.desktop')
|
||||||
os.system(
|
system2(
|
||||||
'cp res/rustdesk-link.desktop tmpdeb/usr/share/applications/rustdesk-link.desktop')
|
'cp res/rustdesk-link.desktop tmpdeb/usr/share/applications/rustdesk-link.desktop')
|
||||||
os.system('cp -a res/DEBIAN/* tmpdeb/DEBIAN/')
|
system2('cp -a res/DEBIAN/* tmpdeb/DEBIAN/')
|
||||||
os.system('strip tmpdeb/usr/bin/rustdesk')
|
system2('strip tmpdeb/usr/bin/rustdesk')
|
||||||
os.system('mkdir -p tmpdeb/usr/lib/rustdesk')
|
system2('mkdir -p tmpdeb/usr/lib/rustdesk')
|
||||||
os.system('mv tmpdeb/usr/bin/rustdesk tmpdeb/usr/lib/rustdesk/')
|
system2('mv tmpdeb/usr/bin/rustdesk tmpdeb/usr/lib/rustdesk/')
|
||||||
os.system('cp libsciter-gtk.so tmpdeb/usr/lib/rustdesk/')
|
system2('cp libsciter-gtk.so tmpdeb/usr/lib/rustdesk/')
|
||||||
md5_file('usr/share/rustdesk/files/systemd/rustdesk.service')
|
md5_file('usr/share/rustdesk/files/systemd/rustdesk.service')
|
||||||
md5_file('usr/lib/rustdesk/libsciter-gtk.so')
|
md5_file('usr/lib/rustdesk/libsciter-gtk.so')
|
||||||
os.system('dpkg-deb -b tmpdeb rustdesk.deb; /bin/rm -rf tmpdeb/')
|
system2('dpkg-deb -b tmpdeb rustdesk.deb; /bin/rm -rf tmpdeb/')
|
||||||
os.rename('rustdesk.deb', 'rustdesk-%s.deb' % version)
|
os.rename('rustdesk.deb', 'rustdesk-%s.deb' % version)
|
||||||
os.system("mv Cargo.toml.bk Cargo.toml")
|
|
||||||
os.system("mv src/main.rs.bk src/main.rs")
|
|
||||||
|
|
||||||
|
|
||||||
def md5_file(fn):
|
def md5_file(fn):
|
||||||
md5 = hashlib.md5(open('tmpdeb/' + fn, 'rb').read()).hexdigest()
|
md5 = hashlib.md5(open('tmpdeb/' + fn, 'rb').read()).hexdigest()
|
||||||
os.system('echo "%s %s" >> tmpdeb/DEBIAN/md5sums' % (md5, fn))
|
system2('echo "%s %s" >> tmpdeb/DEBIAN/md5sums' % (md5, fn))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
// Specify the Windows subsystem to eliminate console window.
|
#![cfg_attr(
|
||||||
// Requires Rust 1.18.
|
all(not(debug_assertions), target_os = "windows"),
|
||||||
//#![windows_subsystem = "windows"]
|
windows_subsystem = "windows"
|
||||||
|
)]
|
||||||
|
|
||||||
use librustdesk::*;
|
use librustdesk::*;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user