Best practices for building aarch64-linux pkgs on a x86_64-linux system?

I’d like to fix the broken pyocr build on aarch64, but I’m on x86_64.

I’ll probably need a VM for this. Is there any existing infrastructure to simplify this task?

1 Like

If you’re on NixOS, you can try something like this:

and then just build with:

nix build -f. python36Packages.pyocr --argstr system aarch64-linux

Woops, just posted from my laptop with an old account. Thanks, Matthew, that’s exactly what I needed!

1 Like

I am trying to make use of this to build some haskell package targetting aarch64-linux. I am on a 'x86_64-linux' with features {kvm, nixos-test}.
This is also, what I get, when I run with the linked qemu.nix plus overlays folder checked out:

nix-build '<nixpkgs/nixos>' --argstr system aarch64-linux -A vm -I nixos-config=./qemu.nix -I nixpkgs=channel:nixos-19.09-small

So I am guessing, this is not how it is used.
Also, trying the vanilla command with the qemu.nix and overlays/qemu checked out doesn’t bring me further:

nix build -f qemu.nix python36Packages.pyocr --argstr system aarch64-linux

can you tell me how this works ?

EDIT: Will try this as a reference.

You can also look at the pkgsCross package set:

$ nix-build -A pkgsCross.
pkgsCross.aarch64-android-prebuilt    pkgsCross.gnu32                       pkgsCross.pogoplug4
pkgsCross.aarch64be-embedded          pkgsCross.gnu64                       pkgsCross.powernv
pkgsCross.aarch64-embedded            pkgsCross.i686-embedded               pkgsCross.ppc-embedded
pkgsCross.aarch64-multiplatform       pkgsCross.iphone32                    pkgsCross.ppcle-embedded
pkgsCross.aarch64-multiplatform-musl  pkgsCross.iphone32-simulator          pkgsCross.raspberryPi
pkgsCross.amd64-netbsd                pkgsCross.iphone64                    pkgsCross.riscv32
pkgsCross.arm-embedded                pkgsCross.iphone64-simulator          pkgsCross.riscv32-embedded
pkgsCross.armhf-embedded              pkgsCross.mingw32                     pkgsCross.riscv64
pkgsCross.armv7a-android-prebuilt     pkgsCross.mingwW64                    pkgsCross.riscv64-embedded
pkgsCross.armv7l-hf-multiplatform     pkgsCross.msp430                      pkgsCross.scaleway-c1
pkgsCross.avr                         pkgsCross.musl32                      pkgsCross.sheevaplug
pkgsCross.ben-nanonote                pkgsCross.musl64                      pkgsCross.vc4
pkgsCross.fuloongminipc               pkgsCross.muslpi                      pkgsCross.wasi32
pkgsCross.ghcjs                       pkgsCross.musl-power                  pkgsCross.x86_64-embedded