From 2e58f072b0d2afbfc841238576b9d06c1af766de Mon Sep 17 00:00:00 2001 From: Kingtous Date: Thu, 17 Nov 2022 10:58:23 +0800 Subject: [PATCH 1/2] feat: add RPM build --- .github/workflows/flutter-nightly.yml | 36 ++++++++++++++++++--------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/.github/workflows/flutter-nightly.yml b/.github/workflows/flutter-nightly.yml index fdbced00a..62637a259 100644 --- a/.github/workflows/flutter-nightly.yml +++ b/.github/workflows/flutter-nightly.yml @@ -120,6 +120,13 @@ jobs: - name: Checkout source code uses: actions/checkout@v3 + - name: Get build target triple + uses: jungwinter/split@v2 + id: build-target-triple + with: + separator: '-' + msg: ${{ matrix.job.target }} + - name: Install prerequisites run: | case ${{ matrix.job.target }} in @@ -250,19 +257,24 @@ jobs: files: | res/rustdesk*.zst - # - name: build RPM package - # id: rpm - # uses: Kingtous/rustdesk-rpmbuild@master - # with: - # spec_file: "res/rpm-flutter.spec" + - name: Make RPM package + shell: bash + if: ${{ matrix.job.extra-build-args == '' }} + run: | + sudo apt install -y rpm + pushd ~/rpmbuild/RPMS/${{ steps.build-target-triple.outputs._0 }} + for name in rustdesk*??.rpm; do + mv "$name" "${name%%.rpm}-fedora28-centos8.rpm" + done - # - name: Publish fedora28/centos8 package - # uses: softprops/action-gh-release@v1 - # with: - # prerelease: true - # tag_name: ${{ env.TAG_NAME }} - # files: | - # ${{ steps.rpm.outputs.rpm_dir_path }}/* + - name: Publish fedora28/centos8 package + if: ${{ matrix.job.extra-build-args == '' }} + uses: softprops/action-gh-release@v1 + with: + prerelease: true + tag_name: ${{ env.TAG_NAME }} + files: | + ~/rpmbuild/RPMS/${{ steps.build-target-triple.outputs._0 }}/* build-flatpak: name: Build Flatpak From 19ea51d07cb51aab531f6611231825ce40848b43 Mon Sep 17 00:00:00 2001 From: Kingtous Date: Thu, 17 Nov 2022 11:16:27 +0800 Subject: [PATCH 2/2] fix: rpm flutter build fix: fedora nightly build --- .github/workflows/flutter-nightly.yml | 3 ++- res/rpm-flutter.spec | 21 ++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/flutter-nightly.yml b/.github/workflows/flutter-nightly.yml index 62637a259..f2391e77e 100644 --- a/.github/workflows/flutter-nightly.yml +++ b/.github/workflows/flutter-nightly.yml @@ -262,6 +262,7 @@ jobs: if: ${{ matrix.job.extra-build-args == '' }} run: | sudo apt install -y rpm + HBB=`pwd` rpmbuild ./res/rpm-flutter.spec -bb pushd ~/rpmbuild/RPMS/${{ steps.build-target-triple.outputs._0 }} for name in rustdesk*??.rpm; do mv "$name" "${name%%.rpm}-fedora28-centos8.rpm" @@ -274,7 +275,7 @@ jobs: prerelease: true tag_name: ${{ env.TAG_NAME }} files: | - ~/rpmbuild/RPMS/${{ steps.build-target-triple.outputs._0 }}/* + /home/runner/rpmbuild/RPMS/${{ steps.build-target-triple.outputs._0 }}/*.rpm build-flatpak: name: Build Flatpak diff --git a/res/rpm-flutter.spec b/res/rpm-flutter.spec index a01926baa..2ba1cbfa4 100644 --- a/res/rpm-flutter.spec +++ b/res/rpm-flutter.spec @@ -3,8 +3,8 @@ Version: 1.2.0 Release: 0 Summary: RPM package License: GPL-3.0 -Requires: gtk3 libxcb libxdo libXfixes pipewire alsa-lib curl libappindicator libvdpau1 libva2 - +Requires: gtk3 libxcb libxdo libXfixes pipewire alsa-lib curl libappindicator-gtk3 libvdpau libva +Provides: libdesktop_drop_plugin.so()(64bit), libdesktop_multi_window_plugin.so()(64bit), libflutter_custom_cursor_plugin.so()(64bit), libflutter_linux_gtk.so()(64bit), libscreen_retriever_plugin.so()(64bit), libtray_manager_plugin.so()(64bit), liburl_launcher_linux_plugin.so()(64bit), libwindow_manager_plugin.so()(64bit), libwindow_size_plugin.so()(64bit) %description The best open-source remote desktop client software, written in Rust. @@ -19,17 +19,14 @@ The best open-source remote desktop client software, written in Rust. %install -mkdir -p "${buildroot}/usr/lib/rustdesk" && cp -r ${HBB}/flutter/build/linux/x64/release/bundle/* -t "${buildroot}/usr/lib/rustdesk" -mkdir -p "${buildroot}/usr/bin" -pushd ${buildroot} && ln -s /usr/lib/rustdesk/rustdesk usr/bin/rustdesk && popd -install -Dm 644 $HBB/res/rustdesk.service -t "${buildroot}/usr/share/rustdesk/files" -install -Dm 644 $HBB/res/rustdesk.desktop -t "${buildroot}/usr/share/rustdesk/files" -install -Dm 644 $HBB/res/rustdesk-link.desktop -t "${buildroot}/usr/share/rustdesk/files" -install -Dm 644 $HBB/res/128x128@2x.png "${buildroot}/usr/share/rustdesk/files/rustdesk.png" - +mkdir -p "%{buildroot}/usr/lib/rustdesk" && cp -r ${HBB}/flutter/build/linux/x64/release/bundle/* -t "%{buildroot}/usr/lib/rustdesk" +mkdir -p "%{buildroot}/usr/bin" +install -Dm 644 $HBB/res/rustdesk.service -t "%{buildroot}/usr/share/rustdesk/files" +install -Dm 644 $HBB/res/rustdesk.desktop -t "%{buildroot}/usr/share/rustdesk/files" +install -Dm 644 $HBB/res/rustdesk-link.desktop -t "%{buildroot}/usr/share/rustdesk/files" +install -Dm 644 $HBB/res/128x128@2x.png "%{buildroot}/usr/share/rustdesk/files/rustdesk.png" %files -/usr/bin/rustdesk /usr/lib/rustdesk/* /usr/share/rustdesk/files/rustdesk.service /usr/share/rustdesk/files/rustdesk.png @@ -56,6 +53,7 @@ esac cp /usr/share/rustdesk/files/rustdesk.service /etc/systemd/system/rustdesk.service cp /usr/share/rustdesk/files/rustdesk.desktop /usr/share/applications/ cp /usr/share/rustdesk/files/rustdesk-link.desktop /usr/share/applications/ +ln -s /usr/lib/rustdesk/rustdesk /usr/bin/rustdesk systemctl daemon-reload systemctl enable rustdesk systemctl start rustdesk @@ -80,6 +78,7 @@ case "$1" in # for uninstall rm /usr/share/applications/rustdesk.desktop || true rm /usr/share/applications/rustdesk-link.desktop || true + rm /usr/bin/rustdesk || true update-desktop-database ;; 1)