Contributing package question

Problems with packages? Post here, using [tags] of the package name.

Contributing package question

Postby ramsey » Sun Apr 22, 2018 2:14 am

If there are any contributors reading, I'm wondering what your build machine is like. Is it an x86 running qemu or do you build in chroots on ARM hardware? Either way, how do you go about compiling packages for ARM 5 thru 8? Is it on a single machine?

I'd like to try contributing openjdk 10 from the AUR. The diff between AUR JDK 9 and ALARM JDK 9 looks reasonably small enough, but I'm left wondering the best way to set up the build machine. Any advice is appreciated. Thank you.
ramsey
 
Posts: 28
Joined: Mon Aug 14, 2017 3:46 pm

Re: Contributing package question

Postby summers » Sun Apr 22, 2018 9:57 am

Whilst I don't do arch packages, I know how I'd approach compilation ...

I'd go the direction of a cross compiler, on an desk top computer. Compiling cross compilers is hassle, but it means you have the speed of desk top. Usually you build up the same file system environment as will exist on the target architecture. The important one is the C library you link against, for arch glibc, but often on embedded devices uclibc or musl.

A good introduction is on http://landley.net/, Rob spent many years developing aboriginal linux - a truly minimal system that could build itself.

What I suspect happens on ArmArch is that they have at least semi automatic downloading of build packages from main Arch; and than then builds the packages for the various targets.

This said though, if building a single application, the hassles of a cross compiler may best be avoided; instead develop the code directly on the target computer. Using a native compiler makes life far easier, all be it a slow process ...
summers
 
Posts: 984
Joined: Sat Sep 06, 2014 12:56 pm

Re: Contributing package question

Postby WarheadsSE » Sun Apr 22, 2018 6:02 pm

We make use of PlugBuild for our automated build farm. We built this system from the ground up since 2011, explicitly to be a correct port of Arch Linux to a new platform, basing on, not forking from Arch "upstream".

The farm is made up of a cluster of ARM boards (XU4, C2, A1100, etc), which make then make use of distcc to hand out the primary compilation (only) work to a few large x86_64 servers. All pre-parsing, linking, and packaging is done natively on ARM hardware. We do this because emulation via QEMU has a simple caveat: it is emulation, not simulation. There be dragons. Even if 95% of all packages are unaffected, 5% if >4000 (per platform) is still >200. As a very small team, that's a lot of churn to handle for the cost of "ease", and thus we made the decision very early on to do it correctly, and save everyone countless hours in the future. This has served the community, and the team especially, very well over the years.

>95% of all work on this distribution is handled by 1 person week to week. We can not thank that person enough for their years of effort, but we must also acknowledge the community who has actively engaged and supported the project in the nearly 9 years of the project.

If you wish to test & contribute, follow the CONTRIBUTING documentation. You will need to build on ARM hardware, possibly making use of distcc via other ARM, or with x86_64 machines using the provided toolchains, on as many architectures as possible (ARMv5-ARMv8).

ARMv5 (arm), ARMv6 (armv6h), ARMv7 (armv7h) are built in the cluster ODROID XU4's using properly maintained clean chroots. ARMv8 are built on ODROID C2s and A1100, explicitly targeting the AArch64 instruction set (we don't package 32bit ARMv8, AArch32), in the same manner.
Core Developer
Remember: Arch Linux ARM is entirely community donation supported!
WarheadsSE
Developer
 
Posts: 6807
Joined: Mon Oct 18, 2010 2:12 pm

Re: Contributing package question

Postby ramsey » Tue Apr 24, 2018 2:41 am

Thanks both for replies.

I found the description of the ALARM build farm very informative. Thank you. I'll do a little shopping and see what I can put together :)
ramsey
 
Posts: 28
Joined: Mon Aug 14, 2017 3:46 pm


Return to Packages

Who is online

Users browsing this forum: No registered users and 8 guests