Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 7 additions & 67 deletions .github/workflows/flutter-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1517,86 +1517,26 @@ jobs:
pushd /workspace
export CARGO_INCREMENTAL=0
export DEB_ARCH=${{ matrix.job.deb_arch }}
python3 ./build.py --flutter --skip-cargo
for name in rustdesk*??.deb; do
mv "$name" "${name%%.deb}-${{ matrix.job.arch }}.deb"
done

# rpm package
echo -e "start packaging fedora package"
pushd /workspace
case ${{ matrix.job.arch }} in
aarch64)
sed -i "s/linux\/x64/linux\/arm64/g" ./res/rpm-flutter.spec
;;
esac
HBB=`pwd` rpmbuild ./res/rpm-flutter.spec -bb
pushd ~/rpmbuild/RPMS/${{ matrix.job.arch }}
for name in rustdesk*??.rpm; do
mv "$name" /workspace/"${name%%.rpm}.rpm"
done
python3 ./build.py --flutter --skip-cargo --debian-prepare-only

# rpm suse package
echo -e "start packaging suse package"
pushd /workspace
case ${{ matrix.job.arch }} in
aarch64)
sed -i "s/linux\/x64/linux\/arm64/g" ./res/rpm-flutter-suse.spec
;;
esac
HBB=`pwd` rpmbuild ./res/rpm-flutter-suse.spec -bb
pushd ~/rpmbuild/RPMS/${{ matrix.job.arch }}
for name in rustdesk*??.rpm; do
mv "$name" /workspace/"${name%%.rpm}-suse.rpm"
done

- name: Publish debian/rpm package
- name: Publish debian package
if: env.UPLOAD_ARTIFACT == 'true'
uses: softprops/action-gh-release@v1
with:
prerelease: true
tag_name: ${{ env.TAG_NAME }}
files: |
rustdesk-*.deb
rustdesk-*.rpm
rustdesk_raw.tar.gz

- name: Upload deb
- name: Upload tar
uses: actions/upload-artifact@master
if: env.UPLOAD_ARTIFACT == 'true'
with:
name: rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}.deb
path: rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}.deb

# only x86_64 for arch since we can not find newest arm64 docker image to build
# old arch image does not make sense for arch since it is "arch" which always update to date
# and failed to makepkg arm64 on x86_64
- name: Patch archlinux PKGBUILD
if: matrix.job.arch == 'x86_64' && env.UPLOAD_ARTIFACT == 'true'
run: |
sed -i "s/x86_64/${{ matrix.job.arch }}/g" res/PKGBUILD
if [[ "${{ matrix.job.arch }}" == "aarch64" ]]; then
sed -i "s/x86_64/aarch64/g" ./res/PKGBUILD
fi

- name: Build archlinux package
if: matrix.job.arch == 'x86_64' && env.UPLOAD_ARTIFACT == 'true'
uses: rustdesk-org/arch-makepkg-action@master
with:
packages:
scripts: |
cd res && HBB=`pwd`/.. FLUTTER=1 makepkg -f

- name: Publish archlinux package
if: matrix.job.arch == 'x86_64' && env.UPLOAD_ARTIFACT == 'true'
uses: softprops/action-gh-release@v1
with:
prerelease: true
tag_name: ${{ env.TAG_NAME }}
files: |
res/rustdesk-${{ env.VERSION }}*.zst
name: rustdesk_raw.tar.gz
path: rustdesk_raw.tar.gz

build-rustdesk-linux-sciter:
if: ${{ inputs.upload-artifact }}
if: false
runs-on: ${{ matrix.job.on }}
name: build-rustdesk-linux-sciter ${{ matrix.job.target }}
strategy:
Expand Down
16 changes: 16 additions & 0 deletions .github/workflows/flutter-debian-raw.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Flutter Debian Build without packaging

on:
release:
types: [published]
# for testing purposes, enable manual trigger
workflow_dispatch:
pull_request:

jobs:
build-debian-raw-package:
uses: ./.github/workflows/flutter-build.yml
secrets: inherit
with:
upload-artifact: true
upload-tag: env.VERSION
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,5 @@ examples/**/target/
vcpkg_installed
flutter/lib/generated_plugin_registrant.dart
libsciter.dylib
flutter/web/
flutter/web/
*.tar.gz
20 changes: 16 additions & 4 deletions build.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,11 @@ def make_parser():
action='store_true',
help='Skip cargo build process, only flutter version + Linux supported currently'
)
parser.add_argument(
'--debian-prepare-only',
action='store_true',
help='Stop Debian Build after generating temp folder and CONTROL file and package in a tar archive'
)
if windows:
parser.add_argument(
'--skip-portable-pack',
Expand Down Expand Up @@ -315,7 +320,7 @@ def ffi_bindgen_function_refactor():
'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, prepare_only):
if not skip_cargo:
system2(f'cargo build --features {features} --lib --release')
ffi_bindgen_function_refactor()
Expand Down Expand Up @@ -356,11 +361,18 @@ def build_flutter_deb(version, features):
generate_control_file(version)
system2('cp -a ../res/DEBIAN/* tmpdeb/DEBIAN/')
md5_file_folder("tmpdeb/")
system2('dpkg-deb -b tmpdeb rustdesk.deb;')

if prepare_only:
# do not complete debian packaging, leave job to OBS
system2('tar -czf rustdesk_raw.tar.gz tmpdeb/')
os.rename('rustdesk_raw.tar.gz', '../rustdesk_raw.tar.gz')
else:
# finalize debian package
system2('dpkg-deb -b tmpdeb rustdesk.deb;')
os.rename('rustdesk.deb', '../rustdesk_%s-1_%s.deb' % (version, get_deb_arch()))

system2('/bin/rm -rf tmpdeb/')
system2('/bin/rm -rf ../res/DEBIAN/control')
os.rename('rustdesk.deb', '../rustdesk_%s-1_%s.deb' % (version, get_deb_arch()))
os.chdir("..")


Expand Down Expand Up @@ -555,7 +567,7 @@ def main():
else:
# system2(
# 'mv target/release/bundle/deb/rustdesk*.deb ./flutter/rustdesk.deb')
build_flutter_deb(version, features)
build_flutter_deb(version, features, args.debian_prepare_only)
else:
system2('cargo bundle --release --features ' + features)
if osx:
Expand Down
21 changes: 21 additions & 0 deletions download_deb_from_github.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
set -e

RUSTDESK_VERSION="1.4.2"
DEBIAN_REVISION="1"
RUSTDESK_PACKAGE_WITH_CONNECT="rustdesk-connect"
RUSTDESK_PACKAGE_NO_CONNECT="rustdesk"
TAG_WITH_CONNECT="tag/${RUSTDESK_VERSION}-with-connect"
TAG_NO_CONNECT="tag/${RUSTDESK_VERSION}-no-connect"
BASE_URL="https://api.github.com/repos/b1-systems/rustdesk/releases/tags"
URL_WITH_CONNECT="${BASE_URL}/${TAG_WITH_CONNECT}"
ASSET_WITH_CONNECT="${RUSTDESK_PACKAGE_WITH_CONNECT}_${RUSTDESK_VERSION}-${DEBIAN_REVISION}_amd64.deb"
URL_NO_CONNECT="${BASE_URL}/${TAG_NO_CONNECT}"
ASSET_NO_CONNECT="${RUSTDESK_PACKAGE_NO_CONNECT}_${RUSTDESK_VERSION}-${DEBIAN_REVISION}_amd64.deb"

DOWNLOAD_URL_WITH_CONNECT=$(curl -s "${URL_WITH_CONNECT}" | \
jq -r ".assets[] | select(.name==\"$ASSET_WITH_CONNECT\") | .browser_download_url")
curl -s -L "$DOWNLOAD_URL_WITH_CONNECT" -o "$ASSET_WITH_CONNECT"

DOWNLOAD_URL_NO_CONNECT=$(curl -s "${URL_NO_CONNECT}" | \
jq -r ".assets[] | select(.name==\"$ASSET_NO_CONNECT\") | .browser_download_url")
curl -s -L "$DOWNLOAD_URL_NO_CONNECT" -o "$ASSET_NO_CONNECT"
2 changes: 1 addition & 1 deletion libs/hbb_common
Loading