Upstream ships amd64 only
Your dependency releases x86 binaries and x86 container images. ppc64le lives in a # TODO somewhere. Someone has to build it — and keep building it every release.
The ppc64le builds, AIX native ports and IBM i PASE work that consolidations from x86 and POWER8 to POWER11 usually get stuck on.
The hardware part is easy. The software is where a Power migration sits half-done for two years.
Your dependency releases x86 binaries and x86 container images. ppc64le lives in a # TODO somewhere. Someone has to build it — and keep building it every release.
C extensions, JIT paths and SIMD written against x86 either fail to compile or return wrong results on ppc64le. Cross-compiling won't catch this.
Your app builds. Its dependency's dependency doesn't. It becomes a directed acyclic graph, and someone has to walk it, patch it, and upstream what's accepted.
Runners, base images, cache layers, signing, artefact stores — every step assumes amd64. Multi-arch is a pipeline rewrite where ppc64le is first-class.
The port works on cutover day. Six months later a CVE, an upstream bump, a new transitive dep. Without ownership, the port rots and the estate slides back to x86.
Three different problems, three separate tracks. Native ports on AIX, PASE runtimes on IBM i, containers on Linux ppc64le.
Native compilation with IBM Open XL C/C++ (LLVM-based) or GCC where it makes sense. No containers — AIX is not a Linux.
installp or RPMPASE for anything open source — Python, Node, Java, PostgreSQL. Then the interesting work: the boundary with ILE and Db2 for i.
Where containers do make sense. RPM and DEB packages, OCI images, multi-arch manifests so the same tag pulls the right binary on x86 and Power.
Upstreamed where accepted, kept as a private layer where not.
Reproducible on your side, target ppc64le, AIX and PASE directly.
.rpm, .deb, installp — or OCI images with multi-arch manifests.
Software Bill of Materials in CycloneDX, ready for compliance.
Upstream test suite plus your integration tests, on real Power.
Deploy, upgrade and rollback — written so someone else can execute.
Optional: CVE tracking, upstream bumps and dependency changes so the port doesn't rot.
Migrations that ship on time pilot the ugly workload — the one where the ISV shrugged and the maintainer stopped answering.
Inventory apps, versions, dependencies, runtimes and integrations. No opinions yet.
Each app gets a route: rehost / rebuild / port / containerise / replace / retain. A wish is not a route.
Pilot the highest-risk workload first — on real Power hardware, with real data. If that ports, everything else is a variation.
Turn the reference port into pipelines, standards and quality gates the rest of the estate reuses.
Waves, cutover and lifecycle ownership past go-live. Someone tracks CVEs and upstream bumps — or the port rots.
No public rate card — two ports of the same package on the same runtime can differ by 10× depending on the shape of the upstream. What's fixed is how we get to the quote.
Two weeks of engineering. Fixed fee. Written deliverable: inventory, classification per app (rehost / rebuild / port / containerise / replace / retain), risk matrix and a scoped plan you can share with your customer or your board.
After the assessment, each port is quoted as a fixed-scope engagement based on real findings. Not an hourly bucket, not a T&M open tap.
No free discovery calls. The assessment is the discovery, and its deliverable stands on its own even if you never contract the port.
Two weeks of engineering, fixed fee, written deliverable. If you already have the shape in your head, we get to the port faster.
or write to hello@librepower.org
We use cookies on librepower.org
We use essential cookies to keep the site working, and analytics cookies (Google Analytics) to understand how it's used. No advertising, no profiling, no data sold — ever. Cookie policy · Privacy notice