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

[iOS] Theos Dependencies package and iOS Toolchain are outdated #616

Open
L1ghtmann opened this issue Jul 17, 2021 · 9 comments
Open

[iOS] Theos Dependencies package and iOS Toolchain are outdated #616

L1ghtmann opened this issue Jul 17, 2021 · 9 comments

Comments

@L1ghtmann
Copy link
Member

L1ghtmann commented Jul 17, 2021

(Thanks for reporting an issue! Please make sure you click the link above to view the issue guidelines, then fill out the blanks below.)

What are the steps to reproduce this issue?

  1. Setup Theos on an iOS device
  2. Try to compile a project

What happens?

Various incompatible architecture errors

What were you expecting to happen?

The project to compile without error(s).

Any logs, error output, etc?

...

Any other comments?

What needs updating:

  • iOS Toolchain package
  • Theos Dependencies package

My Thoughts:

  • Since all required packages will likely remain available on Procursus or Bingner/Elucubratus moving forward, it may be worth creating a new Theos Dependencies package, labeling it "Legacy," and giving it the current package's Depends: and Description: fields. This would allow allow older versions to remain supported while not hindering future versions. Unrelated note: the description is missing "unzip" from the list of packages installed.

  • Since the current Theos Dependencies package will no longer be hindered by legacy compatibility, a new, generic toolchain (that would also likely want to be on BigBoss) should be published that depends on clang, ld64, odcctools, make, and ldid.

  • Since the now "legacy" version supports up to iOS 11 and Procursus is iOS 12+, the Theos Dependencies package and this new toolchain should be installed if firmware >= 12. It may also be worth adding firmware << 12 to the legacy package to ensure that it isn't installed on versions that it's incompatible with.

  • The current Theos Dependencies package should drop CoolStar's toolchain and Perl from its Depends field in favor of the new toolchain and generic Perl.

  • The current Theos Dependencies package's Description should be updated to list https://apt.bingner.com/ and https://apt.procurs.us/ instead of CoolStar's public repo and Sam's other repo. It may also be worth adding a note about bootstrap compatibility (e.g., that 'x' repo should only be installed on 'y and z jailbreaks') so that there's no confusion/accidental installations from incompatible bootstraps.

  • This doesn't really make a difference, but org.thebigboss.cacerts can be changed to ca-certificates for the current Theos Dependencies package since it's available (and preinstalled) by both modern bootstraps.

What versions of software are you using?

Operating System:
iOS 14.3

Toolchain Version:
N/A

SDK Version:
N/A

@Diatrus
Copy link
Contributor

Diatrus commented Jul 22, 2021

My solution to this is going to be offering a Theos Dependencies package on Procursus.

UPDATE: It's now up.

@kirb
Copy link
Collaborator

kirb commented Jul 29, 2021

Thanks heaps @Diatrus!

I’m going to keep this open since there are still some good ideas mentioned in the issue regarding the original Theos Dependencies package:

  • Rename it to “legacy” or perhaps “for Telesphoreo only”
  • Add note to description that the toolchain is old and only supports up to iOS X.X SDK (I think 9.3?)
  • Possibly link to the Theos wiki for more info on using Theos on macOS/Linux/Windows.

@Diatrus
Copy link
Contributor

Diatrus commented Jul 29, 2021

Thanks heaps @Diatrus!

I’m going to keep this open since there are still some good ideas mentioned in the issue regarding the original Theos Dependencies package:

  • Rename it to “legacy” or perhaps “for Telesphoreo only”

  • Add note to description that the toolchain is old and only supports up to iOS X.X SDK (I think 9.3?)

  • Possibly link to the Theos wiki for more info on using Theos on macOS/Linux/Windows.

Sounds great. If you'd like me to change the description of the one on Pro, just lmk.

@Muhammed5445
Copy link

Foundation Fpundation h error
Help me pls

@kirb
Copy link
Collaborator

kirb commented Aug 6, 2021

@Muhammed5445 Please create a discussion thread for this.

@L1ghtmann
Copy link
Member Author

@kirb Instead of having the dependencies package be specific to each bootstrap, wouldn't it be easier to maintain and less work all around to have the theos dev team host their own package (like you are now) on BigBoss or another default repo? Currently, the 'updated' package is only available for Procursus users, which leaves Elucubratus users stuck manually installing the required packages.

Just my two cents.

@L1ghtmann
Copy link
Member Author

L1ghtmann commented Mar 13, 2022

In the event that you guys do decide to go with a 'universal' dependencies package, I've tested the following on both Procursus and Elucubratus and have confirmed that it's sufficient:
Depends: ca-certificates, clang, coreutils, curl, dpkg, git, grep, ldid, make, odcctools, perl, plutil | com.bingner.plutil | libplist-utils, rsync, unzip, xz | xz-utils, firmware (>=12.0).

I also revised the description to match the changes:
Description: A meta package that provides what Theos needs including: cacerts, clang, coreutils, curl, dpkg, git, grep, ldid, make, darwin cc tools, perl, plutil or plistutil, rsync, unzip, and xz utils. For devices running iOS >= 12.0. For devices running iOS << 12.0, see [legacy package name].

Obviously you don't have to use any of that, but figured I'd go ahead and share it in case it was being considered.

@kirb
Copy link
Collaborator

kirb commented Mar 13, 2022

That looks good, thanks for figuring that out! Considering how straightforward that is, we could definitely host a modern version of the dependencies package somewhere.

By the way, plutil can be plutil | com.bingner.plutil, the prefixed name is used on Elucubratus.

@L1ghtmann
Copy link
Member Author

Sure thing. And, oop, good catch!

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

No branches or pull requests

4 participants