-
Notifications
You must be signed in to change notification settings - Fork 1
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
ivi-homescreen support #6
Comments
lol It was running just fine on android, ios, web and linux, then as part of Release 6 we included initial firebase integration which broke linux. If you're happy to add AGL meta-flutter recipe for Pumped great thanks save me fumbling around and we'll seek to fix linux in next release. regards |
linux (desktop) and and Chrome (web) now build and run on macOS Parallels ubuntu. best regards |
Okay this is progress :) Output log of runtime=Debug on ivi-homescreen (debug). It's hung up on splash screen failing to get a location. If the output looks unfamiliar I'm running on my FlutterView PR:
Known problems:
So given the above possible solutions:
What's the required list of plugins you need support for? |
thank you much appreciated - following some initial replies,
regards |
A while back I started evaluating all the flutter Linux Plugins projects. I pulled interesting ones into this test app: This is where I identified the issues I've referenced. Also where I found the issue with application Id for geolocation. In debug build 98% of the plugins work. Geolocation is one that does not. In AOT build 98% attempt to use platform channels for to issue one above. Geolocation fails authenticating with daemon due to defaulting to invalid application Id, something like . If I add glib application implementation i strongly suspect i can make a debug image work, but the problem remains with AOT. Which I'm told by Stuart Morgan is not supposed to work by design. Really the only path to get Linux Dart plugin code into an AOT (based on work to date) is to solve the cross compile issue, run A short term solution on your end might be to implement mock interfaces (location, etc) in Dart based on build flag. That way it can launch and run, and once the lower level stuff is sorted out, it's just a matter of removing the build flag (dart define). |
@bernardcraddock https://gerrit.automotivelinux.org/gerrit/c/AGL/AGL-repo/+/27772 |
This is what you get when running AOT image of PED (from root SSH session):
The screen stays at detecting location. This follows my above statement about the Linux Dart not getting compiled for AOT. This pattern is found in plugins that "support linux"; that means only when built with Image used: https://github.com/meta-flutter/meta-flutter/actions/runs/2677329870 |
thanks for such prompt and detailed replies and initial ped meta-flutter recipe i really appreciate it, and please excuse if my replies are delayed it's just that I'm doing this in my spare time. My initial aspiration for Pumped end-device (MVP) is attempt to cover as many platforms as possible android/iOS, web, linux, Android-Automotive and CarPlay on the hope we can pivot as dominate platform emerges. Within this and as part of flutter/linux combination i jumped into AGL and ped is supporting web and desktop-linux. Of course AGL being a bespoke linux distro i always suspected at some point we may need to create and specialise a ped-agl branch. i don't think we're there yet but just pointing it out.
again thanks muchly best regards [ /home/parallels/Documents/GitHub/ped gitb:(main) flutterc:(stable) ] An Observatory debugger and profiler on Linux is available at: http://127.0.0.1:44541/xSm8ClWC5Wc=/ flutter: [2022-07-16 20:16:51.673157]: DEBUG: GetFuelStationsInRange : execute::Time taken 1471 etc ... |
@bernardcraddock this plugin device info will not work:
I'm out next week on holiday, back the following. I escalated the Linux Dart plugin issue yesterday with the flutter team. If that gets addressed, that would enable most of the plugins, with key exception being "secure" d-bus (geoclue). |
@bernardcraddock another approach is what Tizen is doing. Fork all of the 1P/3P "Linux GTK" plugins and modify them to use a custom platform, then modify SDK to enable custom platform selection. This is a terrible approach that involves lots of maintenance costs; not a fan. The changes are pretty minor. Then you have to continually merge upstream changes; lots of busy work. So in your case it would be to recreate all the plugins to add AGL platform. Another option. The "Linux GTK" 1P Plugins directly load shared modules without validating then, which is something you wouldn't want to ship in a production release. So the-writing them targeting AGL platform might be the best approach. I'll mock something up when I'm back next week. |
@jwinarske thanks for the post I know little of Tizen, and regardless would never adopt an approach requiring continuous retrofit work. We're running right to the bone and only have single shot refer ped/Linux so I'm ok to follow AGL route but looks like I'm going to need a lot of help to get it all working If you're now on vacation please enjoy talk next week |
@jwinarske FYI we're doing significant simplification refactoring of ped for agl specifically landscape and just desktop-linux and web; no firebase/android/iOS/macOS and having absolute minimum pubspec.yaml 1P plugin entries as such will create new ped-agl repo let you know when done. As you suggested will implement secure storage https://pub.dev/packages/flutter_secure_storage. regards |
@jwinarske - i've just pushed new release of ped on new agl branch As part of this push I've culled all non essential pubspec plugins so what's left are mandatory, so hopefully together with your help we can find an elegant solution for our linux AOT AGL compilation issue! As your time permits appreciate if can you update PED recipe flutter-app-pumped-fuel-ped_git.bb for agl branch etc, (incidentally we never had an issues when flutter team bumped stable from 3.0.5 to 3.3.0) Once you give me the all clear i'll take the flutter workspace tool for a spin, log any issues in meta-flutter thankyou |
@bernardcraddock The is a master merge pending with an AGL meta-agl-flutter README.md you should find useful. The script runs successfully on Mac. It currently only installs runtime artifacts on Ubuntu. In general custom-device support does work on Mac. To support Mac correctly I need image artifacts that are not yet getting published (QEMU aarch64 images). The x86_64 QEMU images are coming from meta-flutter which are my staging/test builds for downstream AGL master. Once AGL build infra is publishing flutter images I will update AGL workspace config accordingly. Flutter Workspace Automation is currently working and available. It will be included in my upcoming training session. |
@jwinarske got the README thanks, it expects user running Ubuntu 20.04, which is fine as i've got Ubuntu desktop VM on my Mac, but does it work on both x86_64 and M1 or am i restricted to x86_64 ? training sessions sound good |
The changeset pending review is for the last needlefish point release. Early next week tag. These are the gaps to Mac multi-arch support in setup_flutter_workspace.py:
So the tip of tree for your AGL branch will be locked in this release. If you have anything you want to add, I'll be locking by 10:30AM PST tomorrow. |
ok thank you, and nothing to add as just playing around for now becoming familiar |
Hi @jwinarske - trust i find you well , i have extensively tested and now pushed ped latest to agl branch ready for meta-flutter testing. As your time permits (no rush) could you please bump flutter-app-pumped-fuel-ped_git.bb SRCREV with my last commit Also could you clarify at what point or change should i trash and rebuild the workspace automation tool ? I'm cautiously optimistic ped will launch or at least make significantly more progress than previous attempts assuming url_launcher_linux doesn't trip me up which it might, and if so i'll try to figure out why myself but failing that i'll need to escalate to you if that's ok. best regards |
@bernardcraddock Yes I'll bump it. Same branch? |
@jwinarske Yes same branch |
@bernardcraddock I just rolled kirkstone and dunfell. The mock location works for me with your recent changes. I get a fuel listing. |
@jwinarske oh beauty mate, small milestone !! |
Hi @jwinarske I checked flutter aps - ped, gallery, flutter_animated_background/example and flutter_homescreen ERROR:flutter/shell/common/shell.cc(93)] Dart Error: Can't load Kernel binary: Invalid SDK hash. Is this and flutter SDK mismatch version between meta-flutter and AGL ? If not can you confirm AGL x86_64 QEMU Image (AGL-qemu) is working your end , lsb_release -a Failing that I am still running 2 installs of flutter the original snap for my own dev purposes and now meta-flutter's Following is PED failing please advise |
For AGL it's running 3.3.1. meta-flutter is running 3.3.7. The error you are seeing is due to a mismatch with the QEMU image. So the-run the script passing flutter version 3.3.1. |
Also with meta-flutter config, M1 support for QEMU is present. Perf isn't great, and I'm looking into another solution that would require updating to Ventura; where perf should be optimal. |
hey @jwinarske New issue and I'm a little stumped appreciate any help Issue could be mine but I can't see how any ideas ? Also came across this flutter/flutter#74392 For additional context in this release PED still using local store for local persistence but, at your suggestion we're imminently switching to flutter_secure_store, But does secure_store use xdg_directories and if so will it incur same issue? parallels > flutter run appreciate any feedback |
It may be that one of the plugins you're using has a runtime dependency on "xdg-user-dirs". That may not be present in the AGL QEMU image. That being the case there may be others missing as well. Then keep in mind testing with AOT is also required to see impact from "Linux" plugin debug bug. As a side note i see when running ped via flutter-auto it's writing a whole lot of files directly to my home folder. It should be using the following folder: $HOME/.config/$APP_NAME |
@jwinarske Latest PED release (just pushed) in addition to new functionality includes https://pub.dev/packages/flutter_secure_storage which is working fine on all the other platforms so see how it goes 1st using flutter-auto then on AGL I believe i need to ensure AGL has libsecret-1-dev and libjsoncpp-dev to build the project, and libsecret-1-0 and libjsoncpp1 to run the application: So how to i check if AGL has these libraries and if not how do i install them? When i get your reply i'm going to close this ticket and open new issues on meta-flutter should i have problems with flutter_secure_storage on AGL, so as the other guys can follow along and benefit. regards |-- localstore 1.3.4 |
Hi @jwinarske git clone https://github.com/meta-flutter/workspace-automation -b jw/impeller_gl this ran for ages completed all the 'cipd ensure' stuff then failed on ninja OSError: [Errno 5] Input/output error regards • [fetch 9/14] Fetched fuchsia/sdk/core/linux-amd64:K3jvECt7y1_-zBVw3qjEV8RzqYkrIQfQIP9-wk6V5AgC …
|
@jwinarske - above issue is mine my Mac parallels VM blew up. regards |
@jwinarske regards |
Hey @jwinarske - ped agl branch using secure_storage is now running against -b jw/impeller_gl I now need to switch away from jw/impeller_gl as flutter main channel changes too often. Couple of other things if i may
thank you and regards. |
@bernardcraddock I'm working on Firebase plugin support right now. The intent is to run your main branch as-is. I will most likely show your app at CES for a Firebase example. |
#Main Plugin status
|
AGL is currently at 3.13.9. Stable is currently at 3.16.x After CES I will move AGL to 3.16.x |
excellent thankyou
3.13.x broke our custom design of TextScaler textScaleFactor that's why PED
-b agl does not work in workspace-automation -b main.
Note It did work in -b jw/impeller_gl using impeller but flutter main is
too wild for me
Have now written a pedTextScaler workaround in 3.16 that's working ok and
will start pushing to other branches over the weekend
We have a new improved Scaling design in mind using new widgets etc, will
implement later
regards
Bernard Craddock
Co-founder Pumped Fuel
www.pumpedfuel.com
L2, 11 York Street Sydney 2000
…On Fri, Dec 8, 2023 at 11:00 AM Joel Winarske ***@***.***> wrote:
AGL is currently at 3.13.9. Stable is currently at 3.16.x After CES I will
move AGL to 3.16.x
—
Reply to this email directly, view it on GitHub
<#6 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABCJ6O3VMEIBQ33JBOBIN7LYIJKC5AVCNFSM5YK3XEAKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOBUGYZDQOBSG42Q>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Oh yes please I'm very excited at the possibility you may show PED at CES as a Firebase example and between now and then will do whatever it takes to make that happen. I'm also a little confused perhaps you can advise.
Other regards |
@jwinarske |
Crashalytics is not supported on Linux in any format. Sentry is supported on ivi-homescreen. It uses the sentry-native library found on GitHub. Essentially a Crashpad port that connects to sentry.io's backend. Sentry has two tiers, one is free. For the firebase stuff in options return android when platform.linux. No other change should be required. It works in flutter-desktop today. Will be adding to ivi-homescreen soon. I'm not supporting linux-gtk for any plugins at this time. |
For main I was thinking it could be common for all platforms. That would require some refactoring on your end. For location on Linux use the geoclue plug-in. |
My original intention was main would be common for all platforms, but it proved very difficult ensuring both Portrait and Landscape looked good using material. At the time General consensus was that IVI would/should be landscape. So, I instead created portrait and landscape branches.
I am so caught up with Google and Apple getting ped published, but as soon as that is done, I'd really appreciate your help getting -b agl released to AGL on ivi-homescreen with sentry, geoclue and whatever else is important for demo |
#Following up here. I have an internal branch that implements a desktop registrar. I have the following plugins ported:
The way one uses firebase with ivi-homescreen in my upcoming release is to change firebase options to return type of "android" when it is linux. This works for all the associated firebase functional test cases as well as for the Super Dash game. next_main:
|
Running
If next_main implements geoclue for the linux platform it should then just work work provided the credentials were plugged in. If you want to make that change and create a sandbox set of credentials I can test further. If it works I will show as one of the apps at my station on the CES floor. |
@bernardcraddock I take that back the tip of tree I added contents of:
|
I copied latest geolocator linux release to local filesystem then modified pubspec.yaml:
https://github.com/Baseflow/flutter-geolocator/tags
|
Only remaining issue is to get firebase-cpp-sdk to cross compile for aarch64. That's not supported today |
Added recipe back in for next_main: |
@jwinarske - sorry for late reply been away on family matters. thank you for researching this, I was very pleasantly surprised this morning and please give me some time to come up to speed, as I need to ensure I don't break anything else. I'm still battling with Apple and then need to do some pumped AWS backend stuff so may take a little while before I circle back to this. Also, back in Nov on jw/impller_gl branch you added commit "Add missing packages" which enables libsecret and secure storage as part of ivi-homescreen make which worked fine, however I stopped using jw/impller_gl as it's too unstable for me and I switched back to main. Therefore, can you please merge that commit back into main so as my AGL and ivi_secure_storage branches (hardcoded location) work in main branch, instead of just failing. regards |
My work will be released early February. We have to circle back on unit tests, and test the current very large test matrix. Today after porting the 11.6.0 firebase packages I am seeing. Not sure if it's you or me.
|
@jwinarske, Concerning ivi_secure_storage and agl branches I just now manually updated configs/desktop-homescreen.json on my local in main to include the libsecret and -DBUILD_PLUGIN_SECURE_STORAGE changes you did, deleted ped and ivi-homescreen then flutter_workspace.py --flutter-version=3.16.5 and both branches working fine just switch branch in app/ped, i even tried ivi_localstore also working fine. wa-vm > git branch
wa-vm > git checkout ivi_localstore I'm happy to stick around if you need more input from me, to get this working - happy to have Googe Hangout if you want. |
wa-vm > gitd configs/desktop-homescreen.json
@@ -54,7 +54,7 @@
@@ -89,4 +89,4 @@ |
I'm sticking with next_main. Not focused on anything else. Way too much work and not enough time to do it |
ok
Bernard Craddock
Co-founder Pumped Fuel
www.pumpedfuel.com
L2, 11 York Street Sydney 2000
…On Mon, Jan 8, 2024 at 6:13 PM Joel Winarske ***@***.***> wrote:
I'm sticking with next_main. Not focused on anything else. Way too much
work and not enough time to do it
—
Reply to this email directly, view it on GitHub
<#6 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABCJ6O4SYZ3SHTIHGW4EAW3YNOMCZAVCNFSM5YK3XEAKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOBYGA2DQMZYGIYA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Oh my Goodness, you got it working yippee thank you very much! We originally didn't include firebase within IVI, because if you recall way back when, I did mention it and you said you weren't going to use/adopt it. Do you plan on bringing it to AGL? next_main/main branches have considerable firebase functionality that we're constantly adding to. As soon as I've finished with iOS and AWS, will switch back and review the tweaks you did to get this working. on a separate note, In addition to this I have friends who work in AI/LLM Persona Modulation, who feel this technology could potentially be a good candidate for an In-vehicle AI system in the context of a Personalised journey concierge, that is combined with robust critical safety/security and privacy concerns. thoughts? |
I was looking to add a recipe for this app to meta-agl-flutter. Looks like it will only run on web right now.
Can we get this app into a state that builds and runs on Linux? Then after which I will implement recipe for AGL.
For secure storage you want: https://pub.dev/packages/flutter_secure_storage
ivi-homescreen has default support for the native side of flutter_secure_storage.
Cheers,
Joel
The text was updated successfully, but these errors were encountered: