[Android/F-Droid] F-Droid version online updating issue
Description
Official website 1.19.1 APK is perfect on Android: it auto-download assets and you can download cores.
But F-Droid's 1.19.1 APK cannot auto-download assets and the core list is empty.
I guess F-Droid team mis-configured the build...
Expected behavior
F-Droid APK should auto download assets and core list should not be empty. Just like the official APK:
Actual behavior
F-Droid's 1.19.1 APK cannot auto-download assets and the core list is empty.
Steps to reproduce the bug
- Install APK from F-Droid
- Launch the app
- Go to Online Update
Bisect Results
[Try to bisect and tell us when this started happening]
Version/Commit
- RetroArch: 1.19.1
Environment information
- OS: Android 14 (Xiaomi HyperOS 1.0)
- Compiler: [In case you are running local builds]
did you try updating the info files first?
did you try updating the info files first?
Yes, I did. Actually, it forces you to update core info first before downloading cores...
Even if you grant access to write external storage, it seems that default directory for cores and cores info is
/data/user/0/com.retroarch/cores
If you switch to
/storage/emulated/0/RetroArch/cores
It will work.
Even if you grant access to write external storage, it seems that default directory for cores and cores info is
/data/user/0/com.retroarch/coresIf you switch to
/storage/emulated/0/RetroArch/coresIt will work.
Is it a misconfigured build from F-Droid? Official APK works out-of-box, without any manual configuration.
Is it a misconfigured build from F-Droid? Official APK works out-of-box, without any manual configuration.
I don't know well Android but it does not seem they have changed something to the build recipe.
I don't know well Android but it does not seem they have changed something to the build recipe.
true, and as the recipe is pretty short one can see we don't touch anything, afaik, so not sure that's what breaks it
HOME - Load Core - Download a Core - Fetch list... pops up... but stays empty, right @guoyunhe ?
All F-Droid versions do this, mmmkay
But...
HOME - Online Updater - touch Update CoreInfoFiles, then Assets, then touch the rest... Fetch list appears, files get downloaded, and put in place...
now, if you go to Download a Core... what do you see? :wink:
anyway, https://github.com/libretro/RetroArch/issues/16126 should be fixed I guess
/PS: It does not help that there's no actual logcat error for us to grasp and find out why, even if the server is contacted, no content is pulled
If this is an info/assets issue, would you want to switch to this alternate asset bundle, @licaon-kter ?
I know we talked about this and other strategies in another issue but we never went any further with the other options, and this seems like a simple fix in the meantime.
@licaon-kter exactly, F-Droid version seems missing some automatic download logic. You have to manually click everything in order by yourself. Official APK, on the other hand, is smarter and does all the essential downloading for you.
@hizzlekizzle
would you want to switch to this alternate asset bundle,
switch to another one, yes
but I want it from http://buildbot.libretro.com/assets/frontend/ ... not a random Github link
Sure. If you're prepared for that change, I'll get it up there. I just didn't want things to break by it suddenly having a different checksum.
I can build a test one first, to see if it fixes stuff, brb
https://github.com/user-attachments/files/17996557/glui_minimal_assets.zip
using this one and the list is fetched right away :tada:
when is the next version gonna be released?
That's a good question. I don't have an ETA (I don't think anyone does, actually), but I can start talking to the other folks on the team about it. It's been a long time, so probably a good idea to get something going soon.
@hizzlekizzle
would you want to switch to this alternate asset bundle,
switch to another one, yes
but I want it from http://buildbot.libretro.com/assets/frontend/ ... not a random Github link
+1, GitHub is blocked in China and some other countries. Using libretro domain & server is much safer.
New update released but http://buildbot.libretro.com/assets/frontend/ -> glui_minimal_assets.zip is still from 2023?
@licaon-kter sorry for the delay/hassle. I got someone to swap it out but he can't get to it until sometime tomorrow, but it should be good to go from that same buildbot address soon.
@licaon-kter hey man, we should be good to go now. thanks for the heads-up, and thanks for working with us on it.
added in https://gitlab.com/fdroid/fdroiddata/-/commit/f3244d34d1ff4de016d69b3b39e4c318e81c1ce5 thanks
With that in place, are we ready to close this issue, @guoyunhe ?
@hizzlekizzle I haven't received f-droid's update.
@guoyunhe https://gitlab.com/fdroid/wiki/-/wikis/FAQ#how-long-does-it-take-for-my-app-to-show-up-on-website-and-client
did everyone got a chance to test 1.20?
I just tested 1.20 from F-Droid and it still doesn't download assets etc. successfully...
pics please, explain whet you did, what you wanted, what happened
- Uninstall RetroArch if installed old version.
- Install RetroArch from F-Droid.
- Open RetroArch and grant storage permission etc.
Actual behavior: It failed to download assets and cannot render Chinese fonts properly
Expeced behavior: It should download assets and show Chinese fonts
okay, does it resolve that if you include the fonts folder? https://github.com/libretro/retroarch-assets/tree/master/fonts
okay, does it resolve that if you include the fonts folder? https://github.com/libretro/retroarch-assets/tree/master/fonts
Chinese/Korean fonts are located at https://github.com/libretro/retroarch-assets/tree/master/pkg
I have tried official APK from https://retroarch.com/ and it downloads assets and fonts perfectly. But F-Droid version just doesn't work.
@guoyunhe May you try to provide some log using something like pidcat ?
pidcat com.retroarch
Thank you.
Chinese/Korean fonts are located at https://github.com/libretro/retroarch-assets/tree/master/pkg
I have tried official APK from https://retroarch.com/ and it downloads assets and fonts perfectly. But F-Droid version just doesn't work.
Just a quick heads-up here. The RetroArch build from the website doesn't download anything, it extracts. All the content is blunded in the APK (assets, core info files, shaders, etc.) and, on the first launch, it's extracted to the corresponding folders.
In the retroarch.cfg file, this is set with:
bundle_assets_extract_enable = "true", which is "true" on Android and "false" on other platforms.
This entry is also left unchanged in the build from F-Droid, but since the glui_minimal_assets.zip file doesn't include all those assets files, this issue is happening here.
So you need to download them manually if you want to use other fonts, shaders, or other menu driver (Ozone works surprisingly well with touchscreens), or more missing assets should be included in glui_minimal_assets.zip (F-Droid doesn't bundle all assets in the APK because the file hashes change/update frequently or something like this, if I remember correctly).
By the way, all these assets files are quite slow to extract on older devices, not because of the file size, but because of the sheer amount of files, more than 5.000 used for the XMB menu driver alone, that end up practically unused, since XMB isn't very touchscreen-friendly.
So I'm glad that glui_minimal_assets.zip exists now thanks to the F-Droid build.
I'll post this in another comment instead of editing the previous one, as it's unrelated and just a suggestion.
@licaon-kter, according to this comment https://github.com/libretro/RetroArch/issues/11922#issuecomment-1510015356, the main assets.zip file update too fast and therefore cannot generate a checksum to satisfy F-Droid requirement (so that the build is reproducible, I think?).
The glui_minimal_assets.zip file was created for this reason and is currently used as source for the assets for the build in F-Droid, but it is not complete and contains only some essential files.
I think this could be easily solved by pulling the assets from the latest stable Windows build instead of the main assets.zip file. It's just a .7z file, the contents of the /assets, /autoconfig, /database, /info, /overlays and /shaders folders are the same and will work (the other folders and files, such as the main .exe file, simply need to be ignored/deleted).
And it can also be pulled from the APK from the website, they are inside the "assets" folder within the APK file, which would make the F-Droid build have the same assets as the website version.
Once the stable version is released, the checksum of the file and assets inside it will not change, thus resolving the issue and allowing the build in F-Droid to contain all the assets files.
The only issue I see is that it would be necessary to change to the new URL to pull the assets with each new version released, since currently the buildbot doesn't have a static URL that points always to the latest one.
Just my two cents.