-
Notifications
You must be signed in to change notification settings - Fork 766
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
Install Failures on Termux #2324
Comments
Thanks @xloem. Can you share the custom config file you needed to create as your workaround? |
Sorry for leaving that out.
|
(to clarify latest maturin beta, without your config file. There was a change that allows PyO3 to look for Python in more cases and it might have happened to fix this case.) |
Can we even support |
Ah darn yes, I missed that.
I think so? My understanding is that as long as the wheel links against |
Oh, I was wrong, there is
and it's even mentioned in PEP 384. So yes, the build script logic can be altered to link to |
|
I guess Termux environment isn't manylinux compatible, so you should run |
I'm sorry, I'm having trouble testing this, and I'm kinda frustrated and confused (phone keeps running out of space which disables internet, reinstalled rust repeated ...). The errors haven't quite seemed deterministic for me. I did get a non-wheel build to succeed repeatedly using the upgraded libraries. I haven't reproduced this today. However, performing both upgrades appears to resolve the lib_name error. |
No problem, thanks very much for testing & sharing all this information with us. Hopefully what this concludes is that once the ecosystem has had a chance to update, this class of problems is resolved. For now the custom config file will work for you at least 👍 |
@messense is that true of all builds to Android? (Should maturin turn off wheel auditing if the android target is detected?) |
Well I don't really know.
It was already disabled when invoking with |
Arright, everything works with --skip-auditwheel. I had to update both the rust buildfile to reference pyo 0.16.4 and the python buildfiles to reference maturin 0.12.13-beta.1 . |
Bug Description
I was unable to install a pyo3 pip package on termux without manually providing a config file. For some reason the library parameters were not set. From #1800 (comment)
Steps to Reproduce
pkg install python rust
pip3 install based58
or manually from https://github.com/kevinheavey/based58 (pkg install git
)Backtrace
Your operating system and version
TERMUX_APK_RELEASE=F_DROID TERMUX_APP_PID=16828 TERMUX_IS_DEBUGGABLE_BUILD=0 TERMUX_MAIN_PACKAGE_FORMAT=debian TERMUX_VERSION=0.118.0 Packages CPU architecture: aarch64 Subscribed repositories: # sources.list deb https://termux.mentality.rip/termux-main/ stable main # x11-repo (sources.list.d/x11.list) deb https://packages.termux.org/apt/termux-x11 x11 main # sources.list.d/pointless.list deb https://its-pointless.github.io/files/24 termux extras Updatable packages: termux-keyring/stable 3.3 all [upgradable from: 3.2] Android version: 8.1.0 Kernel build information: Linux localhost 3.18.71-perf-gc7467a0 #1 SMP PREEMPT Thu Jan 24 02:00:44 EST 2019 aarch64 Android Device manufacturer: BlackBerry Device model: BBB100-1
Your Python version (
python --version
)Python 3.10.4
Your Rust version (
rustc --version
)rustc 1.60.0
Your PyO3 version
pyo3 = { version = "0.15.1", features = ["extension-module", "abi3-py37"] }
How did you install python? Did you use a virtualenv?
apt
Additional Info
This might be a bug with based58 . I'm not sure.
I tried mutating the Cargo.toml line and encountered different sets of errors. Providing a manual config based on the output of manually running cargo let me install the package successfully, as described in the linked origin issue.
The way Termux works, the root system and all libraries are installed relative to a prefix local to the application data folder. This path is stored in $PREFIX and is almost always /data/data/com.termux/files/usr . In order to run conventional shell scripts with
#!/usr/bin/foo
lines, Termux keeps LD_PRELOAD filled with a dynamic library called termux-exec that mutates this behavior when the scripts are executed, so as to find their launching processes relative to the prefix. Everything in Termux is installed without root. These are the biggest quirks of Termux that I am aware of.The text was updated successfully, but these errors were encountered: