Al4ise / Azule

Other
487 stars 50 forks source link

-f dev.theos.orion14 fails to be included from canister #103

Open pandather opened 2 years ago

pandather commented 2 years ago

azule -n gbreloaded -b rip.bongs.gbreloaded -p "GB Reloaded" -i ./GB.ipa -o ./build -f dev.theos.orion14 ./rip.bongs.golfblitzpowermodifier_0.0.1-405+debug_iphoneos-arm.deb

results in this code


[] Extracting iPA... [] IPA extracted [] Extracted rip.bongs.golfblitzpowermodifier_0.0.1-405+debug_iphoneos-arm.deb [] Refreshed https://repo.chariz.com [] Fetched dev.theos.orion14 [] Couldn't Refresh https://repo.chariz.com https://repo.chariz.com [] Couldn't find dev.theos.orion [] Couldn't find /var/folders/vc/prsq3m0d1tn6x8jrvk8ys4d00000gn/T/tmp.5fNTFymV/debs/dev.theos.orion.deb [] Couldn't Refresh https://repo.chariz.com https://repo.chariz.com [] Couldn't find dev.theos.orion [] Couldn't find /var/folders/vc/prsq3m0d1tn6x8jrvk8ys4d00000gn/T/tmp.5fNTFymV/debs/dev.theos.orion.deb [] Couldn't Refresh https://repo.chariz.com ......


azule -n gbreloaded -b rip.bongs.gbreloaded -p "GB Reloaded" -i ./GB.ipa -o ./build -f ./dev.theos.orion14.deb ./rip.bongs.golfblitzpowermodifier_0.0.1-405+debug_iphoneos-arm.deb

Works perfectly fine after copying this file to $PWD/dev.theos.orion14.deb: /var/folders/vc/prsq3m0d1tn6x8jrvk8ys4d00000gn/T/tmp.5fNTFymV/debs/dev.theos.orion14.deb

Also, copying the file with a name azule was looking for for some reason "dev.theos.orion.deb" while it looked like it kept trying to search the directory failed to do anything.

pandather commented 2 years ago

So the issue is that my package relies on dev.theos.orion, and dev.theos.orion14 has a file with a line Provides: dev.theos.orion that is never parsed. azule is just repeating the search for a package named dev.theos.orion even though it doesn't exist and is instead provided by a package with an alternate name. All of this happens while azule automatically tries to download the orion framework that any orion tweak relies on.

Al4ise commented 2 years ago

I can't seem to reproduce this issue. what device are you running azule on?

pandather commented 2 years ago

an m1 macbook air, I think it's only happening because azule is trying to inject my tweak, depending on dev.theos.orion first, and then when looking for the dependencies it fails to find it, since there's technically no package named dev.theos.orion, but two packages that Provides: dev.theos.orion, and azule never even tries to find dev.theos.orion14


I think the fix would be to have a separate list of all dependencies of every bundle, store them in a list, install what doesn't need dependencies (dev.theos.orion14), read the "provides" line, and hardlink, symlink, or mv/copy dev.theos.orion14.deb to dev.theos.orion.dev, and then download the rest of the dependencies and inject them first ofc.


The reason you may not be able to repeat this is I am using a deb that depends on the orion framework, maybe if it was already in a repo, canister reads the provides line for you.


The other issue is that if two packages provide dev.theos.orion, one that supports 12.2-13.x, and one that supports 14.x, I have 0 idea how canister would know which package to actually use.

Al4ise commented 1 year ago

I don't know when it got fixed, but it seems to work on the latest version. Could you double check just to make sure?