RetroArch icon indicating copy to clipboard operation
RetroArch copied to clipboard

[Android/F-Droid] F-Droid version online updating issue

Open guoyunhe opened this issue 1 year ago • 14 comments

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:

image

Actual behavior

F-Droid's 1.19.1 APK cannot auto-download assets and the core list is empty.

image

Steps to reproduce the bug

  1. Install APK from F-Droid
  2. Launch the app
  3. 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]

guoyunhe avatar Nov 29 '24 05:11 guoyunhe

did you try updating the info files first?

hizzlekizzle avatar Nov 30 '24 01:11 hizzlekizzle

did you try updating the info files first?

Yes, I did. Actually, it forces you to update core info first before downloading cores...

guoyunhe avatar Dec 01 '24 11:12 guoyunhe

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.

gouchi avatar Dec 01 '24 22:12 gouchi

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.

Is it a misconfigured build from F-Droid? Official APK works out-of-box, without any manual configuration.

guoyunhe avatar Dec 02 '24 07:12 guoyunhe

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.

gouchi avatar Dec 02 '24 13:12 gouchi

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

licaon-kter avatar Dec 03 '24 10:12 licaon-kter

If this is an info/assets issue, would you want to switch to this alternate asset bundle, @licaon-kter ?

glui_minimal_assets.zip

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.

hizzlekizzle avatar Dec 03 '24 17:12 hizzlekizzle

@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.

guoyunhe avatar Dec 04 '24 03:12 guoyunhe

@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

licaon-kter avatar Dec 04 '24 09:12 licaon-kter

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.

hizzlekizzle avatar Dec 04 '24 14:12 hizzlekizzle

I can build a test one first, to see if it fixes stuff, brb

licaon-kter avatar Dec 04 '24 14:12 licaon-kter

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?

licaon-kter avatar Dec 05 '24 10:12 licaon-kter

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 avatar Dec 05 '24 14:12 hizzlekizzle

@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.

guoyunhe avatar Dec 06 '24 07:12 guoyunhe

New update released but http://buildbot.libretro.com/assets/frontend/ -> glui_minimal_assets.zip is still from 2023?

licaon-kter avatar Jan 03 '25 07:01 licaon-kter

@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.

hizzlekizzle avatar Jan 06 '25 16:01 hizzlekizzle

@licaon-kter hey man, we should be good to go now. thanks for the heads-up, and thanks for working with us on it.

hizzlekizzle avatar Jan 07 '25 17:01 hizzlekizzle

added in https://gitlab.com/fdroid/fdroiddata/-/commit/f3244d34d1ff4de016d69b3b39e4c318e81c1ce5 thanks

licaon-kter avatar Jan 07 '25 20:01 licaon-kter

With that in place, are we ready to close this issue, @guoyunhe ?

hizzlekizzle avatar Jan 08 '25 22:01 hizzlekizzle

@hizzlekizzle I haven't received f-droid's update.

guoyunhe avatar Jan 09 '25 05:01 guoyunhe

@guoyunhe https://gitlab.com/fdroid/wiki/-/wikis/FAQ#how-long-does-it-take-for-my-app-to-show-up-on-website-and-client

licaon-kter avatar Jan 09 '25 06:01 licaon-kter

did everyone got a chance to test 1.20?

licaon-kter avatar Jan 16 '25 11:01 licaon-kter

I just tested 1.20 from F-Droid and it still doesn't download assets etc. successfully...

guoyunhe avatar Jan 17 '25 07:01 guoyunhe

pics please, explain whet you did, what you wanted, what happened

licaon-kter avatar Jan 17 '25 08:01 licaon-kter

  1. Uninstall RetroArch if installed old version.
  2. Install RetroArch from F-Droid.
  3. Open RetroArch and grant storage permission etc.

Actual behavior: It failed to download assets and cannot render Chinese fonts properly

Image

Expeced behavior: It should download assets and show Chinese fonts

guoyunhe avatar Jan 18 '25 03:01 guoyunhe

okay, does it resolve that if you include the fonts folder? https://github.com/libretro/retroarch-assets/tree/master/fonts

hizzlekizzle avatar Jan 18 '25 15:01 hizzlekizzle

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 avatar Jan 19 '25 02:01 guoyunhe

@guoyunhe May you try to provide some log using something like pidcat ?

pidcat com.retroarch

Thank you.

gouchi avatar Sep 09 '25 20:09 gouchi

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.

matheuswillder avatar Oct 31 '25 06:10 matheuswillder

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.

matheuswillder avatar Oct 31 '25 10:10 matheuswillder