This is a standard python wheel packaging OmniORB/OmniORBpy for easy use from python projects.
See original software here: https://omniorb.sourceforge.io/
This installs like a standard pypi package.
See https://pypi.org/project/jeteve-omniorb
- Just install a Python package, no more special OmniORB compilation on your platform.
- Packages latest stable OmniORB.
- Batteries included. Get started with OmniORB examples right after installation. See
example/and/or https://omniorb.sourceforge.io/omnipy43/omniORBpy. - Support for legacy glibc 2.17+ because we don't all have new shiny OSes.
- CI Tested Support for python from 3.8 to 3.14.
- Stable OmniOrb versions Automatically tested using omniorb's examples.
- Tested to work with
uvxif you want to just runomniidloromniNames. - cute emojis in shell scripts.
We aim at supporting the full Python example from omniorb out of the box:
https://omniorb.sourceforge.io/omnipy43/omniORBpy/omniORBpy002.html#sec10
In particular, that means that this packages the binary omnicpp (OmniORBs take on a C Preprocessor) coming from the C/C++ OmniORB library.
This is tested as part of the building process.
In your development environment, run build-wheels.sh You only need docker.
This generates wheels that are versioned with the version of the packaged
OmniORB library, and following https://peps.python.org/pep-0440/, it adds
a .postN part that express the fact that this is a new packaging of
the same software.
From git tags perspective, this specific repo needs to be tagged with .postN.
Everything happens in the provided Docker images.
It is based on manylinux2014_x86_64 (from project https://github.com/pypa/manylinux) for maximum compatibility with glibc 2.17.
Other architectures will come later. Maybe.
Building the build image:
docker buildx build . --iidfile .docker-image-id
docker run --rm -v $(pwd):/workdir $(cat .docker-image-id) echo "✅ Docker image built successful."
First follow https://docs.docker.com/build/building/multi-platform/
Make sure you install qemu binaries if you want to leverage qemu:
docker run --privileged --rm tonistiigi/binfmt --install allNote that qemu will be very slow. The buildx with multiple build nodes providing the different architectures is preferred.
Using the github actions workflow is preferred, as it provides VM on native architectures.
# See supported architecture in manylinux
# https://github.com/pypa/manylinux
docker buildx build --iidfile .docker-image-id --platform linux/arm64 --build-arg MANYLINUX_ARCH=aarch64 .
docker run --platform linux/arm64 --rm -v $(pwd):/workdir $(cat .docker-image-id) echo "✅ Docker image built successful."Build:
docker run -t -e HOME=/workdir -u $(id -u):$(id -g) --rm -v $(pwd):/workdir $(cat .docker-image-id) bash /workdir/inside-build-wheels.sh "cp312" "4.2.6"
Test:
docker run -t -e HOME=/workdir -u $(id -u):$(id -g) --rm -v $(pwd):/workdir $(cat .docker-image-id) bash /workdir/inside-test-wheels.sh "3.12" "4.2.6"- Check all wheels with twine (using uvx is recommended)
uvx twine check wheelhouse/*
- Upload to test repo
uvx twine upload --repository testpypi wheelhouse/*
- Check you can download and execute uvx -n -p 3.13 --from "jeteve_omniorb~=4.3.3" --index-url https://test.pypi.org/simple/ omnicpp -h uvx -n -p 3.12 --from "jeteve_omniorb~=4.3.3" --index-url https://test.pypi.org/simple/ omnicpp -h uvx -n -p 3.11 --from "jeteve_omniorb~=4.3.3" --index-url https://test.pypi.org/simple/ omnicpp -h uvx -n -p 3.10 --from "jeteve_omniorb~=4.3.3" --index-url https://test.pypi.org/simple/ omnicpp -h