Support for Obspy on the Linux, ARM64, platform
Omid87 opened this issue · comments
Problem
Request for the inclusion of ARM64 architecture support for the Linux platform in ObsPy. As the ARM64 architecture gains prominence in various computing environments, particularly in scientific research and data processing fields, extending support for ARM64 would greatly enhance the usability and accessibility of ObsPy for a wider range of users and systems.
Proposed solution
Package and distribute the Linux, ARM64, version of the Obspy on both Conda-forge and Pypi.
I tried to package the application on Debian ARM64 platform and here is the error I get.
conda build .
WARNING: No numpy version specified in conda_build_config.yaml. Falling back to default numpy value of 1.26
Adding in variants from internal_defaults
Attempting to finalize metadata for obspy
Reloading output folder: ...working... done
Getting pinned dependencies: ...working... done
BUILD START: ['obspy-1.1.0-py312hb3f6f3f_0.tar.bz2']
Reloading output folder: ...working... done
Solving environment (_h_env): ...working... done
Reloading output folder: ...working... done
Solving environment (_test_env): ...working... done
## Package Plan ##
environment location: /home/orangepi/miniconda3/conda-bld/obspy_1712861782103/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho
ld_placehold_placehold_placehold_placehold_placehold_pl
The following NEW packages will be INSTALLED:
**_I DELETED THE LIST OF PACKAGES TO MAKE IT SHORTER_**
Preparing transaction: ...working... done
Verifying transaction: ...working... done
Executing transaction: ...working... done
Source cache directory is: /home/orangepi/miniconda3/conda-bld/src_cache
Found source in cache: obspy-1.1.0_ef48b4e52a.zip
Extracting download
source tree in: /home/orangepi/miniconda3/conda-bld/obspy_1712861782103/work
export PREFIX=/home/orangepi/miniconda3/conda-bld/obspy_1712861782103/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeho
ld_placehold_placehold_placehold_placehold_pl
export SRC_DIR=/home/orangepi/miniconda3/conda-bld/obspy_1712861782103/work
Traceback (most recent call last):
File "/home/orangepi/miniconda3/conda-bld/obspy_1712861782103/work/setup.py", line 47, in <module>
from numpy.distutils.core import DistutilsSetupError, setup
ModuleNotFoundError: No module named 'numpy.distutils'
# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<
Traceback (most recent call last):
File "/home/orangepi/miniconda3/lib/python3.12/site-packages/conda/exception_handler.py", line 17, in __call__
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/orangepi/miniconda3/lib/python3.12/site-packages/conda/cli/main.py", line 83, in main_subshell
exit_code = do_call(args, parser)
^^^^^^^^^^^^^^^^^^^^^
File "/home/orangepi/miniconda3/lib/python3.12/site-packages/conda/cli/conda_argparse.py", line 175, in do_call
result = plugin_subcommand.action(getattr(args, "_args", args))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/orangepi/miniconda3/lib/python3.12/site-packages/conda_build/plugin.py", line 17, in build
return execute(args)
^^^^^^^^^^^^^
File "/home/orangepi/miniconda3/lib/python3.12/site-packages/conda_build/cli/main_build.py", line 581, in execute
api.build(
File "/home/orangepi/miniconda3/lib/python3.12/site-packages/conda_build/api.py", line 250, in build
return build_tree(
^^^^^^^^^^^
File "/home/orangepi/miniconda3/lib/python3.12/site-packages/conda_build/build.py", line 3762, in build_tree
packages_from_this = build(
^^^^^^
File "/home/orangepi/miniconda3/lib/python3.12/site-packages/conda_build/build.py", line 2634, in build
utils.check_call_env(
File "/home/orangepi/miniconda3/lib/python3.12/site-packages/conda_build/utils.py", line 408, in check_call_env
return _func_defaulting_env_to_os_environ("call", *popenargs, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/orangepi/miniconda3/lib/python3.12/site-packages/conda_build/utils.py", line 384, in _func_defaulting_env_to_os_environ
raise subprocess.CalledProcessError(proc.returncode, _args)
subprocess.CalledProcessError: Command '['/bin/bash', '-o', 'errexit', '/home/orangepi/miniconda3/conda-bld/obspy_1712861782103/work/conda_build.sh']' returned non-zero exit status 1.
`$ /home/orangepi/miniconda3/bin/conda build .`
environment variables:
CIO_TEST=<not set>
CONDA_ALLOW_SOFTLINKS=false
CONDA_DEFAULT_ENV=base
CONDA_EXE=/home/orangepi/miniconda3/bin/conda
CONDA_PREFIX=/home/orangepi/miniconda3
CONDA_PROMPT_MODIFIER=(base)
CONDA_PYTHON_EXE=/home/orangepi/miniconda3/bin/python
CONDA_ROOT=/home/orangepi/miniconda3
CONDA_SHLVL=1
CURL_CA_BUNDLE=<not set>
LD_PRELOAD=<not set>
PATH=/home/orangepi/miniconda3/bin:/home/orangepi/miniconda3/condabin:/usr/
local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
REQUESTS_CA_BUNDLE=<not set>
SSL_CERT_FILE=<not set>
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
active environment : base
active env location : /home/orangepi/miniconda3
shell level : 1
user config file : /home/orangepi/.condarc
populated config files : /home/orangepi/.condarc
conda version : 24.3.0
conda-build version : 24.3.0
python version : 3.12.2.final.0
solver : libmamba (default)
virtual packages : __archspec=1=cortex_a72
__conda=24.3.0=0
__glibc=2.31=0
__linux=5.10.110=0
__unix=0=0
base environment : /home/orangepi/miniconda3 (writable)
conda av data dir : /home/orangepi/miniconda3/etc/conda
conda av metadata url : None
channel URLs : https://conda.anaconda.org/conda-forge/linux-aarch64
https://conda.anaconda.org/conda-forge/noarch
https://repo.anaconda.com/pkgs/main/linux-aarch64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/r/linux-aarch64
https://repo.anaconda.com/pkgs/r/noarch
package cache : /home/orangepi/miniconda3/pkgs
/home/orangepi/.conda/pkgs
envs directories : /home/orangepi/miniconda3/envs
/home/orangepi/.conda/envs
platform : linux-aarch64
user-agent : conda/24.3.0 requests/2.31.0 CPython/3.12.2 Linux/5.10.110-rockchip-rk3588 debian/11.9 glibc/2.31 solver/libmamba conda-libmamba-solver/24.1.0 libmambapy/1.5.8
UID:GID : 1000:1000
netrc file : None
offline mode : False
An unexpected error has occurred. Conda has prepared the above report.
If you suspect this error is being caused by a malfunctioning plugin,
consider using the --no-plugins option to turn off plugins.
Example: conda --no-plugins install <package>
Alternatively, you can set the CONDA_NO_PLUGINS environment variable on
the command line to run the command without plugins enabled.
Example: CONDA_NO_PLUGINS=true conda install <package>
If submitted, this report will be used by core maintainers to improve
future releases of conda.
Would you like conda to send this report to the core maintainers? [y/N]:
Timeout reached. No report sent.
Have you tried like this?
(base) $ conda create -n obspy pip numpy scipy matplotlib lxml setuptools sqlalchemy decorator requests
(base) $ conda activate obspy
(obspy) $ pip install obspy
I'm currently able to install Obspy
in development mode by creating a conda
environment and utilizing pip install -e .
for installation. However, I'm encountering difficulties when attempting to package Obspy using conda build .
on the Linux ARM64 platform.
To provide more context, I'm a member of the software team at EPIC (EarthScope Primary Instrument Center). We're in the process of expanding the compatibility of the PASSOFT suite to the ARM64 platform. PASSOFT
, developed, packaged, and distributed by EPIC, relies on Obspy
as a dependency.
In order to package PASSOFT
for the Linux ARM64 platform, it's crucial that all dependencies are available on this specific platform. Unfortunately, Obspy
isn't currently available for ARM64. As an interim solution until Obspy
becomes available for ARM64, I intend to package Obspy
for this platform and host it on our local conda channel. This approach will enable PASSOFT
to be installed on Linux ARM64 systems.
Looking at your initial failure report.. did you have numpy installed before running conda build?