Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor vcpkg dependencies and get rid of thirdparty repos #6282

Merged
merged 6 commits into from
Nov 7, 2023

Conversation

basilgello
Copy link
Contributor

  • Fix build on android-x86 and rename function
  • Add custom ports not (yet) in upstream vcpkg
  • Refactor build_android_deps.sh
  • Fix CI

@rustdesk
Copy link
Owner

rustdesk commented Nov 4, 2023

👍

@basilgello
Copy link
Contributor Author

@rustdesk How do we trigger CI build for it?

@basilgello basilgello marked this pull request as draft November 4, 2023 06:02
@basilgello basilgello changed the title [Do not merge] Refactor vcpkg dependencies and get rid of thirdparty repos Refactor vcpkg dependencies and get rid of thirdparty repos Nov 4, 2023
@rustdesk rustdesk marked this pull request as ready for review November 4, 2023 06:05
@rustdesk
Copy link
Owner

rustdesk commented Nov 4, 2023

I think you can trigger nightly build or the other CI manually on your repo

@rustdesk
Copy link
Owner

rustdesk commented Nov 4, 2023

Please move vcpkg etc to res/ directory

@basilgello
Copy link
Contributor Author

I checked Actions tab - there is malformed YAML so the build failed at startup. Starting the fix round :)

@basilgello
Copy link
Contributor Author

Moved vcpkg folder to res - vcpkg.json should stay in project root because there you declare project-wude dependsncies for all platforms. In manifest mode, vcpkg installs deps not into $VCPKG_ROOT/installed but into ./vcpkg-installed.

@rustdesk
Copy link
Owner

rustdesk commented Nov 4, 2023

Thanks

@basilgello basilgello force-pushed the vcpkg-deps branch 16 times, most recently from 1453d02 to bbcc034 Compare November 5, 2023 16:06
@basilgello
Copy link
Contributor Author

Fixed :)

@rustdesk
Copy link
Owner

rustdesk commented Nov 6, 2023

@basilgello Great job. Have you run nightly build? since the regular CI does not run ios/arm-linux job.

@rustdesk
Copy link
Owner

rustdesk commented Nov 6, 2023

To run arm-linux, you must remove this line

runs-on: [self-hosted, Linux, ARM64]

we are using our selfhost runner for speed.

@basilgello
Copy link
Contributor Author

This time cmake :) Why vcpkg lists only haf of basic deps needed? :) Will pr there too

@basilgello
Copy link
Contributor Author

#6319

@rustdesk
Copy link
Owner

rustdesk commented Nov 7, 2023

failed, :(

@basilgello
Copy link
Contributor Author

Moment :) What a wild ride :D

@basilgello
Copy link
Contributor Author

#6320

@rustdesk
Copy link
Owner

rustdesk commented Nov 7, 2023

Failed, :)

@basilgello
Copy link
Contributor Author

Dont cancel the whole run please - I want to make sure aarch64 and ipa build. I am spawning another test for arm-linux on aarch64 (I did test cross-building from x86_64 to arm-linyx so maybe I missed something)

@rustdesk
Copy link
Owner

rustdesk commented Nov 7, 2023

Got it.

@basilgello
Copy link
Contributor Author

Ha, darwin (macos) decided it does not want to let DMG go :) Glitch

@rustdesk
Copy link
Owner

rustdesk commented Nov 7, 2023

:(

@basilgello
Copy link
Contributor Author

Aaaand ios failed with totally unexpected error: https://github.com/rustdesk/rustdesk/actions/runs/6783095255/job/18436731959#step:12:99 It looks like we should not use linux bridge for macos either (but you warned me :) )

@basilgello
Copy link
Contributor Author

Looks like the opposite should be done to what I did in f0f52d7 Dont revert yourself, I will push all fixes in separate PR

@basilgello
Copy link
Contributor Author

basilgello commented Nov 7, 2023

And very strange errors here: https://github.com/rustdesk/rustdesk/actions/runs/6783095255/job/18438768047#step:6:757 The library was successfully built, but prebuilt flutter can not be executed.

That self-hosted runners - are they native aarch64 or amd64? Looks like they are native ARM and you use docker with amd64 to build rustdesk. Is that correct?

EDIT: It appears they are amd64 baremetal but arm64 is run inside docker :) OK, time to spawn aarch64 runner ;)

@rustdesk
Copy link
Owner

rustdesk commented Nov 7, 2023

my self-hosted runner is aarch64.

@rustdesk
Copy link
Owner

rustdesk commented Nov 7, 2023

Looks like they are native ARM and you use docker with amd64 to build rustdesk. Is that correct?

Not correct. we could not do such stupid thing.

@basilgello
Copy link
Contributor Author

Aha, found why flutter-elinux was needed: flutter-elinux runs on aarch64 while official flutter does not :)

The only question for now is libvpx cross-compiled frpm arm64-linyx to arm-linux.

@rustdesk
Copy link
Owner

rustdesk commented Nov 7, 2023

I noticed you removed elinux, I thought you got better solution, so did not warn you.

@basilgello
Copy link
Contributor Author

I likely mixed removing this:

curl -O https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_${{ env.FLUTTER_ELINUX_VERSION }}-stable.tar.xz
with removing elinux as a whole.

@basilgello
Copy link
Contributor Author

#6323

@basilgello
Copy link
Contributor Author

Pushed the reverts, and the only remaining thing is libvpx ( again :( )

@basilgello
Copy link
Contributor Author

apk is unusable because prebuilt liboboe.a from thirdparty_lib was silently patched with create_oboe_player / push_oboe_data / destroy_oboe_player. Introducing oboe_wrapper again as we copy libc++ anyway :)

@basilgello
Copy link
Contributor Author

#6325 if CI passes :)

@basilgello
Copy link
Contributor Author

basilgello commented Nov 9, 2023

For macos failure, I will do follow-up PR.

Android APKs are useful again :)

Sciter-armv7 needs another iteration from me - vcpkg produces valid armv7 static libs (I tested this morning) but rust toolchain links something weird. Will spawn another runner ;)

@rustdesk
Copy link
Owner

rustdesk commented Nov 9, 2023

Let me clean cache and try again.

@basilgello
Copy link
Contributor Author

#6358 for test - merge, start nightly build and revert afterwards :) Otherwise I cant reproduce the faulty rlib :(

@beelchester
Copy link
Contributor

beelchester commented Nov 11, 2023

@basilgello I'm not able to install the nightly .rpm build on fedora.
Please check it or let me know if I'm missing some dependency.

$ sudo dnf localinstall rustdesk-1.2.4-0.x86_64.rpm 
Last metadata expiration check: 2:06:09 ago on Sunday 12 November 2023 02:19:17 AM.
Error: 
 Problem: conflicting requests
  - nothing provides libfile_selector_linux_plugin.so()(64bit) needed by rustdesk-1.2.4-0.x86_64 from @commandline
(try to add '--skip-broken' to skip uninstallable packages)

No problem with 1.2.3.
I have a build of 2 Nov, it is also installed without any problem.
I can help you test builds for fedora if you would like.

@basilgello
Copy link
Contributor Author

The library is inside the rpm @sahilyeole :) Trying to understand why rpm declared it as external dependency.

@basilgello
Copy link
Contributor Author

[root@82e5b92284ec /]# diff -ru --color requires.*
--- requires.123        2023-10-13 00:00:00.000000000 +0000
+++ requires.124        2023-11-12 00:00:00.000000000 +0000
@@ -16,6 +16,7 @@
 libdesktop_multi_window_plugin.so()(64bit)
 libdl.so.2()(64bit)
 libdl.so.2(GLIBC_2.2.5)(64bit)
+libfile_selector_linux_plugin.so()(64bit)
 libflutter_custom_cursor_plugin.so()(64bit)
 libflutter_linux_gtk.so()(64bit)
 libgcc_s.so.1()(64bit)

@basilgello
Copy link
Contributor Author

@sahilyeole #6384 :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants