Merge pull request #2782 from Kingtous/master
feat: add arm64 appimage build
This commit is contained in:
		
						commit
						0c8021d881
					
				
							
								
								
									
										43
									
								
								.github/workflows/flutter-nightly.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										43
									
								
								.github/workflows/flutter-nightly.yml
									
									
									
									
										vendored
									
									
								
							| @ -761,6 +761,13 @@ jobs: | ||||
|               use-cross: true, | ||||
|               extra-build-features: "", | ||||
|             } | ||||
|           - { | ||||
|               arch: aarch64, | ||||
|               target: aarch64-unknown-linux-gnu, | ||||
|               os: ubuntu-18.04, # just for naming package, not running host | ||||
|               use-cross: true, | ||||
|               extra-build-features: "appimage", | ||||
|             } | ||||
|           # - { arch: aarch64, target: aarch64-unknown-linux-gnu   , os: ubuntu-20.04, use-cross: true, extra-build-features: "flatpak" } | ||||
|           # - { | ||||
|           #     arch: armv7, | ||||
| @ -939,6 +946,13 @@ jobs: | ||||
|               use-cross: true, | ||||
|               extra-build-features: "", | ||||
|             } | ||||
|           - { | ||||
|               arch: aarch64, | ||||
|               target: aarch64-unknown-linux-gnu, | ||||
|               os: ubuntu-18.04, # just for naming package, not running host | ||||
|               use-cross: true, | ||||
|               extra-build-features: "appimage", | ||||
|             } | ||||
|           # - { | ||||
|           #     arch: aarch64, | ||||
|           #     target: aarch64-unknown-linux-gnu, | ||||
| @ -962,7 +976,7 @@ jobs: | ||||
|       - name: Prepare env | ||||
|         run: | | ||||
|           sudo apt update -y | ||||
|           sudo apt-get -qq install -y git curl wget nasm yasm libgtk-3-dev | ||||
|           sudo apt-get -qq install -y git curl wget nasm yasm libgtk-3-dev libarchive-tools | ||||
|           mkdir -p ./target/release/ | ||||
| 
 | ||||
|       - name: Restore the rustdesk lib file | ||||
| @ -1046,7 +1060,7 @@ jobs: | ||||
|         shell: bash | ||||
|         run: | | ||||
|           for name in rustdesk*??.deb; do | ||||
|               mv "$name" "${name%%.deb}-${{ matrix.job.target }}-${{ matrix.job.os }}.deb" | ||||
|               cp "$name" "${name%%.deb}-${{ matrix.job.target }}-${{ matrix.job.os }}.deb" | ||||
|           done | ||||
| 
 | ||||
|       - name: Publish debian package | ||||
| @ -1057,6 +1071,29 @@ jobs: | ||||
|           tag_name: ${{ env.TAG_NAME }} | ||||
|           files: | | ||||
|             rustdesk-${{ env.VERSION }}-${{ matrix.job.target }}-${{ matrix.job.os }}.deb | ||||
|        | ||||
|       - name: Build appimage package | ||||
|         if: ${{ matrix.job.extra-build-features == 'appimage' }} | ||||
|         shell: bash | ||||
|         run: | | ||||
|           # set-up appimage-builder | ||||
|           pushd /tmp | ||||
|           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 | ||||
|           chmod +x appimage-builder-x86_64.AppImage | ||||
|           sudo mv appimage-builder-x86_64.AppImage /usr/local/bin/appimage-builder | ||||
|           popd | ||||
|           # run appimage-builder | ||||
|           pushd appimage | ||||
|           sudo appimage-builder --skip-tests --recipe ./AppImageBuilder-${{ matrix.job.arch }}.yml | ||||
| 
 | ||||
|       - name: Publish appimage package | ||||
|         if: ${{ matrix.job.extra-build-features == 'appimage' }} | ||||
|         uses: softprops/action-gh-release@v1 | ||||
|         with: | ||||
|           prerelease: true | ||||
|           tag_name: ${{ env.TAG_NAME }} | ||||
|           files: | | ||||
|             ./appimage/rustdesk-${{ env.VERSION }}-*.AppImage | ||||
| 
 | ||||
|       - name: Upload Artifact | ||||
|         uses: actions/upload-artifact@master | ||||
| @ -1310,7 +1347,7 @@ jobs: | ||||
|           popd | ||||
|           # run appimage-builder | ||||
|           pushd appimage | ||||
|           sudo appimage-builder --skip-tests | ||||
|           sudo appimage-builder --skip-tests --recipe ./AppImageBuilder-x86_64.yml | ||||
| 
 | ||||
|       - name: Publish appimage package | ||||
|         if: ${{ matrix.job.extra-build-features == 'appimage' }} | ||||
|  | ||||
							
								
								
									
										85
									
								
								appimage/AppImageBuilder-aarch64.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								appimage/AppImageBuilder-aarch64.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,85 @@ | ||||
| # appimage-builder recipe see https://appimage-builder.readthedocs.io for details | ||||
| version: 1 | ||||
| script: | ||||
|  - rm -rf ./AppDir || true | ||||
|  - bsdtar -zxvf ../rustdesk-1.2.0.deb | ||||
|  - tar -xvf ./data.tar.xz | ||||
|  - mkdir ./AppDir | ||||
|  - mv ./usr ./AppDir/usr | ||||
|  # 32x32 icon | ||||
|  - for i in {32,64,128}; do mkdir -p ./AppDir/usr/share/icons/hicolor/$i\x$i/apps/; cp ../res/$i\x$i.png ./AppDir/usr/share/icons/hicolor/$i\x$i/apps/rustdesk.png; done | ||||
|  # desktop file | ||||
|  # - sed -i "s/Icon=\/usr\/share\/rustdesk\/files\/rustdesk.png/Icon=rustdesk/g" ./AppDir/usr/share/applications/rustdesk.desktop | ||||
|  - rm -rf ./AppDir/usr/share/applications | ||||
| AppDir: | ||||
|   path: ./AppDir | ||||
|   app_info: | ||||
|     id: rustdesk | ||||
|     name: rustdesk | ||||
|     icon: rustdesk | ||||
|     version: 1.2.0 | ||||
|     exec: usr/lib/rustdesk/rustdesk | ||||
|     exec_args: $@ | ||||
|   apt: | ||||
|     arch: | ||||
|     - arm64 | ||||
|     allow_unauthenticated: true | ||||
|     sources: | ||||
|     - sourceline: deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ bionic main restricted universe multiverse | ||||
|       key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' | ||||
|     - sourceline: deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ bionic-updates main restricted universe multiverse | ||||
|       key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' | ||||
|     - sourceline: deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ bionic-backports main restricted | ||||
|         universe multiverse | ||||
|       key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' | ||||
|     include: | ||||
|     - libc6 | ||||
|     - libgtk-3-0 | ||||
|     - libxcb-randr0 | ||||
|     - libxdo3 | ||||
|     - libxfixes3 | ||||
|     - libxcb-shape0 | ||||
|     - libxcb-xfixes0 | ||||
|     - libasound2 | ||||
|     - libsystemd0 | ||||
|     - curl | ||||
|     - libva-drm2 | ||||
|     - libva-x11-2 | ||||
|     - libvdpau1 | ||||
|     - libgstreamer-plugins-base1.0-0 | ||||
|     exclude: | ||||
|     - humanity-icon-theme | ||||
|     - hicolor-icon-theme | ||||
|     - adwaita-icon-theme | ||||
|     - ubuntu-mono | ||||
|   files: | ||||
|     include: [] | ||||
|     exclude: | ||||
|     - usr/share/man | ||||
|     - usr/share/doc/*/README.* | ||||
|     - usr/share/doc/*/changelog.* | ||||
|     - usr/share/doc/*/NEWS.* | ||||
|     - usr/share/doc/*/TODO.* | ||||
|   runtime: | ||||
|     env: | ||||
|       GIO_MODULE_DIR: $APPDIR/usr/lib/x86_64-linux-gnu/gio/modules/ | ||||
|       GDK_BACKEND: x11 | ||||
|   test: | ||||
|     fedora-30: | ||||
|       image: appimagecrafters/tests-env:fedora-30 | ||||
|       command: ./AppRun | ||||
|     debian-stable: | ||||
|       image: appimagecrafters/tests-env:debian-stable | ||||
|       command: ./AppRun | ||||
|     archlinux-latest: | ||||
|       image: appimagecrafters/tests-env:archlinux-latest | ||||
|       command: ./AppRun | ||||
|     centos-7: | ||||
|       image: appimagecrafters/tests-env:centos-7 | ||||
|       command: ./AppRun | ||||
|     ubuntu-xenial: | ||||
|       image: appimagecrafters/tests-env:ubuntu-xenial | ||||
|       command: ./AppRun | ||||
| AppImage: | ||||
|   arch: aarch64 | ||||
|   update-information: guess | ||||
| @ -66,6 +66,7 @@ AppDir: | ||||
|   runtime: | ||||
|     env: | ||||
|       GIO_MODULE_DIR: $APPDIR/usr/lib/x86_64-linux-gnu/gio/modules/ | ||||
|       GDK_BACKEND: x11 | ||||
|   test: | ||||
|     fedora-30: | ||||
|       image: appimagecrafters/tests-env:fedora-30 | ||||
| @ -61,6 +61,8 @@ Future<void> main(List<String> args) async { | ||||
|           kAppTypeDesktopRemote, | ||||
|           'RustDesk - Remote Desktop', | ||||
|         ); | ||||
|         WindowController.fromWindowId(windowId!) | ||||
|             .setTitle('RustDesk - Remote Desktop'); | ||||
|         break; | ||||
|       case WindowType.FileTransfer: | ||||
|         desktopType = DesktopType.fileTransfer; | ||||
| @ -69,6 +71,8 @@ Future<void> main(List<String> args) async { | ||||
|           kAppTypeDesktopFileTransfer, | ||||
|           'RustDesk - File Transfer', | ||||
|         ); | ||||
|         WindowController.fromWindowId(windowId!) | ||||
|             .setTitle('RustDesk - File Transfer'); | ||||
|         break; | ||||
|       case WindowType.PortForward: | ||||
|         desktopType = DesktopType.portForward; | ||||
| @ -135,6 +139,7 @@ void runMainApp(bool startService) async { | ||||
|   windowManager.waitUntilReadyToShow(windowOptions, () async { | ||||
|     windowManager.setOpacity(1); | ||||
|   }); | ||||
|   windowManager.setTitle("RustDesk"); | ||||
| } | ||||
| 
 | ||||
| void runMobileApp() async { | ||||
| @ -198,6 +203,7 @@ void runMultiWindow( | ||||
|   } | ||||
|   // show window from hidden status | ||||
|   WindowController.fromWindowId(windowId!).show(); | ||||
|   WindowController.fromWindowId(windowId!).setTitle(title); | ||||
| } | ||||
| 
 | ||||
| void runConnectionManagerScreen(bool hide) async { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user