Repository navigation
Conversation
The only SUSE build target was opensuse-leap15.1, which has been end of life since 2021. Add opensuse-leap15.6, opensuse-leap16.0, sles15.7 and sles16.0 (built on the SLE Base Container Image) for x86_64 and aarch64. Making these build required: - Dockerfile.opensuse-leap: createrepo is now createrepo_c, rpcgen is a separate package, and bmake/rpmlint are installed only when the repository provides them (the SLE BCI 16 repository has neither). - WITH_TIRPC=yes for the new targets: glibc no longer ships the Sun RPC headers from Leap 15.6 on. sles16 also uses WITH_LIBELF=yes because bmake is unavailable there. - libtirpc.mk: build the bundled libtirpc 1.3.2 with -std=gnu11, the standard the project itself uses. GCC 15 defaults to C23, which rejects its unprototyped declarations. - The RPM spec runs make against _topdir/BUILD. rpm 4.20 runs the install section in a per-build subdirectory, so the bare "make install" found no Makefile. Fixes NVIDIA#100 Signed-off-by: Gustavo Varela <gvarela@suse.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #100.
As the latest comments on #100 point out,
mk/docker.mkonly hasopensuse-leap15.1, which has been end of life since 2021. This adds build targets for the current SUSE releases:opensuse-leap15.6opensuse/leap:15.6opensuse-leap16.0opensuse/leap:16.0sles15.7registry.suse.com/bci/bci-base:15.7sles16.0registry.suse.com/bci/bci-base:16.0The
sles*targets build on the freely redistributable SLE Base Container Image and reuseDockerfile.opensuse-leap. There is no openSUSE Leap 15.7: the Leap 15 series ended with 15.6, and SLE 15 SP7 is covered bysles15.7.Changes
Adding the target names alone is not enough; each of the following was needed to get a working build:
mk/Dockerfile.opensuse-leapcreaterepowas replaced bycreaterepo_cin current SUSE releases. It is not used by the build itself.rpcgenis a separate package, and it is required.bmakeandrpmlintare installed only when the repository provides them, because the SLE BCI 16 repository has neither.bmakeis only needed for the bundled elftoolchain, andrpmlintis already optional (-rpmlintin therpmtarget).mk/docker.mk--sles%target.WITH_TIRPC=yesfor the new targets, because glibc no longer ships the Sun RPC headers from Leap 15.6 on (rpc/rpc.h: No such file or directory).sles16usesWITH_LIBELF=yes, becausebmakeis not available there.mk/libtirpc.mk: build the bundled libtirpc 1.3.2 with-std=gnu11, the standard the project itself compiles with. GCC 15, the compiler in the 16 series, defaults to C23, which rejects libtirpc's unprototyped declarations (conflicting types for 'xdr_opaque_auth').pkg/rpm/SPECS/libnvidia-container.spec: runmake -C %{_topdir}/BUILD install. rpm 4.20 runs the install section in a per-build subdirectory (and points%{_builddir}there), so the baremake installfound no Makefile.%{_topdir}/BUILDis the link to the source tree that therpmtarget already creates, and it is also the working directory on older rpm, so this is a no-op there.README.md: list the new targets.Testing
All builds used
make -f mk/docker.mk <target> DOCKER=podman(podman 5.4.2) on a SLES 16 x86_64 host. aarch64 was built under QEMU user-mode emulation (qemu-linux-user, binfmt).nvidia-container-cli --versionin a clean container (x86_64 and aarch64)opensuse-leap15.1(existing, regression)opensuse-leap15.6opensuse-leap16.0sles15.7sles16.0Notes on the install test:
libnvidia-container1andlibnvidia-container-toolsfrom the built RPMs with zypper, then rannvidia-container-cli --version.lddreported no missing libraries.Not tested: