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

Package manager #42

Open
MartinDelille opened this issue Apr 27, 2020 · 5 comments
Open

Package manager #42

MartinDelille opened this issue Apr 27, 2020 · 5 comments

Comments

@MartinDelille
Copy link

This would be nice to have a Homebrew like package manager.

@kalanihelekunihi
Copy link

As much as homebrew would be really neat, it only supports x86 & x86_64 at present. While there is a TigerBrew fork that includes PPC support, there does not appear to be an ARM variant at present.

There are however multiple other package sources that include aarch64 packages, as well as those that are source based.

@iMonZ
Copy link

iMonZ commented Dec 12, 2021

Any news on that?

@holzschu
Copy link
Owner

The AppStore rules are that all binaries must be present when the app is submitted for approval. That makes it (currently) incompatible with any kind of homebrew-like package manager.

There is a workaround with WebAssembly because wasm files are (technically...) not binaries but text files, and also because the execution is done by Apple's own wasm JIT compiler (so it's their security). Unfortunately, WebAssembly is still quite limited, and most packages cannot be compiled (anything that uses exceptions, or setjmp()/longjmp(), or threads, or forks... cannot be compiled to WebAssembly for now).

So the answer remains: not yet, but I keep trying regularly.

@MartinDelille
Copy link
Author

Does a-shell have compiling capabilities ?

@holzschu
Copy link
Owner

Yes: there is clang, clang++ and make. You can compile packages to WebAssembly, and they will be executed (just type "a.out" at the prompt, a-Shell will recognize it's a WebAssembly file and run it).

But, and that's a very big but:

  • no shell means no way to run "./configure", which means most of the existing packages won't compile.
  • even if you get past this, many packages won't compile to WebAssembly. Most GNU packages assume that you have tons of GNU libraries available, which we don't. And many of these libraries use setjmp()/longjmp(), which won't work in WebAssembly.

So: compiling your own projects, yes. Compiling existing packages distributions... mostly no.

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