question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Build conda packages for ARM

See original GitHub issue

@show0k commented on Fri Sep 02 2016

Hi, Did you ever think about building conda package for ARM architecture ? Since August 2015, conda is officially supporting ARMv7l architecture. It is possible to start ARM Docker container from an intel-64 arch thanks to qemu-arm-static. It could be used to build every conda-forge packages for arm platform with travis-ci or circle-ci.

Now a day I’m building almost every conda packages I need for my ARM board because there few official builds, but I think that it could have a growing ARM/Raspberry Pi community if there were more official or at least conda-forge packets.

Do you think that there is too few ARM users for conda package that it does not worth it ?


@jakirkham commented on Mon Sep 05 2016

There’s a good chance that one will need to run such a Docker container in privileged mode. Not sure that CircleCI or other CIs support that.


@jakirkham commented on Mon Sep 05 2016

This may be a good tool for containerizing VMs.


@show0k commented on Mon Sep 12 2016

There is no need to run container in privileged mode. Usualy to run an ARM docker image on a x86_64 host it needs a kernel with binfmt_misc support, which is the case for travis-ci but not for CircleCI.

But, with a minor modification on qemu, it is possible to embed it on the image and run the ARM image without anything special on the host.

I made a POC image on show0k/miniconda-armv7.


@groutr commented on Sat Sep 24 2016

I wonder if, in this case, using the linaro tool chain to cross compile would be a good a option.


@show0k commented on Mon Sep 26 2016

I think that the Docker idea is better than the cross-compliation, it emulates the whole system, which is easier to integrate with the actual conda & conda-forge scripts. In background, they both use Qemu for the ARM emulation, so the overhead is the same.


@pelson commented on Thu Sep 29 2016

I’m totally up for this. I’ve suffered conda build on the RaspberryPi and it was a terrible experience (conda build ... … wait… wait some more… go to sleep fail. conda build...… wait … wait some more … go to work … fail). My recipes lived in https://github.com/pelson/raspberrypi-conda-recipes and I got quite a way into the stack (in fact, many of those recipes were the basis for conda-forge recipes).

The major things that I’d want to consider though:

  • how we reduce the impact on build time for the existing conda-forge system
  • whether we can improve on the existing noarch conda concept to save us having duplicate conda distributions for non-compiled things
  • how we integrate this into conda-forge without breaking existing feedstocks (that may not yet compile on ARM)

@jakirkham commented on Thu Sep 29 2016

One idea I was toying with earlier was actually having another org for this. It may sound a bit extreme, but this is something that one of the Homebrew devs did when they wanted to support Mac OS 10.4 (Tiger). At least worth keeping in the back of our minds if nothing else.

xref: https://github.com/mistydemeo/tigerbrew


@show0k commented on Thu Sep 29 2016

The problem of build time is really an issue we have to deal with. Throw Qemu the build time on my i7-5557U@3Ghz laptop is two time slower than on Raspberry Pi 3. I mainly use a Odroid XU4 which is far faster than a Raspberry Pi for testing new builds rules.

I think that we can use another free CI provider, in the same way you separate Linux and OSX build with CircleCi and Travis CI. This would solve the impact on build time for x64_86 build, and avoid labelling the existing build as faild.

Another solution could be to use a paid farm of ARM hardware which run Jenkins or Drone on it. Scaleway have great and cheap hardware, but I suppose that managing money and donations for build is out of the scope of conda-forge.


@pelson commented on Thu Sep 29 2016

Managing money is achievable (e.g. NumFOCUS), managing hardware is harder (and the software infrastructure around it) - it would ultimately take time away from other conda-forge activities. I have long wanted a CI service where we can attach donated systems (e.g. personal laptop cycles, corporately donated AWS instances etc.), but we aren’t there yet 😉 .

Your Qemu experience doesn’t sound like it was much fun 😄


@jakirkham commented on Tue Nov 15 2016

I’m going to move this over to the webpage repo for a few reasons.

  1. This is an organization discussion.
  2. It will get more visibility.

Hope that is ok. Thanks everyone for bring this up and providing interesting suggestions. Looking forward to seeing what others might contribute.

Issue Analytics

  • State:closed
  • Created 7 years ago
  • Reactions:4
  • Comments:70 (40 by maintainers)

github_iconTop GitHub Comments

5reactions
jakirkhamcommented, Aug 22, 2018

Just learned recently that Shippable supports ARMv8-A, which would provide us a way to build and upload packages for ARM. Not seeing anything about support for older ARM processors, but it’s possible I’m missing something.

3reactions
jjhelmuscommented, Jan 11, 2017

I’m been building a bunch of conda packages for the Raspberry Pi 2/3 (armv7l) and 1/0 (armv6l). They are available on the rpi channel on Anaconda.org.

The recipes were mostly derived from conda-forge (thanks all for such a great resources) and are available in the jjhelmus/rpi-recipes repo. I’ll be adding docs, a README, proper license, etc and likely renaming this repo in the next week but wanted to give conda-forge folks a heads up.

Read more comments on GitHub >

github_iconTop Results From Across the Web

macOS ARM builds on conda-forge
All these packages are built on conda-forge's current macOS x86_64 ... In order to cross compile packages for osx-arm64 we need compilers.
Read more >
Creating a Python Data Science Distribution for ARM ... - NET
package tools: conda-build and constructor conda-build is a tool to create conda packages. Packages are built from recipes which specify package metadata ...
Read more >
Build variants - Conda
With conda-build 3.0 and split packages from conda-build 2.1, we can simplify this to one coherent recipe that also includes the matrix of...
Read more >
Python Conda Environments for Both arm64 and x86_64 on ...
conda activate $1}# Create ARM conda environment ... that installs arm64 or x86_64 (osx-64) Python packages depending on the value defined by CONDA_SUBDIR...
Read more >
macOS ARM builds on conda-forge - Macs in Chemistry
Installed conda will be able to install packages like numpy, scipy. Currently there are about 100 packages out of 10000 packages pre-built for...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found