processone / processone/ejabberd

The 26.07 OCI image under this repository is built for 32-bit intel CPUs

Open
#4,598 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Packaging:Container
Dominant language
Erlang
Stars
6.7k
Forks
1.6k
PR merge metrics
No merged PRs in 30d

Description

Environment

  • ejabberd version: 26.07
  • OS: Amenity (Personal Alma Linux derivative with hardening options) 10.1
  • Installed from: Container image under ghcr.io/processone/ejabberd

Bug description

The binaries shipped in the container image under amd64 are for the wrong CPU architecture. While AMD64 is compatible with IA32, it poses a problem for setups where for security reasons 32-bit compatibility is enabled.

Verification / Reproduction steps
  1. Pull ejabberd:26.07@sha256:25c94886b2d0083ec7c4b3372f639c1d0f43cd68b3601a706675c11c604fb0a7, which is listed at https://github.com/processone/ejabberd/pkgs/container/ejabberd/1082859162?tag=26.07 as a linux/amd64 image.
  2. podman unshare -> podman image mount $IMAGE_FROM_PREVIOUS_STEP, or mount using alternative mechanisms for inspection.
  3. From the root of the image run file sbin/tini, or any other binary on the system.
Expected

The output goes something like this, as taken from the previous version of the ejabberd image (26.04)
sbin/tini: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-musl-x86_64.so.1, BuildID[sha1]=a5f43fd7973646f055d7152b1d8cafe9b660d17e, stripped

Actual behaviour

The output is the following: sbin/tini: ELF 32-bit LSB pie executable, Intel i386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-musl-i386.so.1, BuildID[sha1]=b84233c312273779a709ee660023695c4674d375, stripped, meaning that the OS image is NOT natively amd64.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the OCI image build and CI entry points for the 26.07 ejabberd image, then compare them with the 26.04 image that produced 64-bit binaries. Rebuild or inspect the resulting image with file sbin/tini and verify that the linux/amd64 image reports an ELF 64-bit x86-64 binary rather than Intel i386.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker
Domain
build-system, devops
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.