* Fix the use of libsubid which had been broken by the revision applied in 1.4.0-rc.2. * Fix a bug introduced in 1.4.0 that caused arm64 to be mis-converted to arm64v8 and resulted in a failure when pulling OCI containers. * Fix user database lookup in master process preventing instance from starting correctly on systems using winbind. Update minimum go version to 1.23.6 now that it is current in el8 & el9. * Check for existence of /run/systemd/system when verifying cgroups can be used via systemd manager. * Add a clear error message if someone tries to use privileged network options while not using setuid mode. * Allow multi-arch oci-archive files that have a nested index with the manifest. This is the default format (both for Docker and OCI) when using nerdctl save. * Test if docker-archive is actually an oci-archive (since Docker version 25), and if it is oci then use the OCI parser to avoid bugs in the Docker parser. Save the daemon-daemon references to a temporary docker-archive, to benefit from the same improvements also for those references. Parse as oci-archive. - New Features & Functionality in from ineherited 1.4.0 * Add support for libsubid, when available at compile time. This library enables central management of subuid and subgid mappings and typically comes as part of the shadow-utils package, possibly as a shadow-utils-subid subpackage. * Add new build option --mksquashfs-args to pass additional arguments to the mksquashfs command when building SIF files. If a compression method other than gzip is selected, the SIF file might not work with older installations of Apptainer or Singularity, so an INFO message about that is printed. On the other hand, an INFO message that was printed (twice) when running an image with non-gzip compression has been removed. OBS-URL: https://build.opensuse.org/package/show/network:cluster/apptainer?expand=0&rev=96
209 lines
6.7 KiB
RPMSpec
209 lines
6.7 KiB
RPMSpec
#
|
|
# spec file for package apptainer
|
|
#
|
|
# Copyright (c) 2025 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%define apptainerpath src/github.com/apptainer/
|
|
%define _buildshell /bin/bash
|
|
|
|
Summary: Application and environment virtualization
|
|
# CRYPTOGAMS isn't known in OBS
|
|
#License: BSD-3-Clause-LBNL and (OpenSSL or CRYPTOGAMS)
|
|
License: BSD-3-Clause-LBNL AND OpenSSL
|
|
Group: Productivity/Clustering/Computing
|
|
Name: apptainer
|
|
Version: 1.4.1
|
|
Release: 0
|
|
# https://spdx.org/licenses/BSD-3-Clause-LBNL.html
|
|
URL: https://apptainer.org
|
|
Obsoletes: singularity <= 3.8.5
|
|
Conflicts: singularity
|
|
Conflicts: singularity-ce
|
|
Conflicts: singularity-runtime
|
|
Source0: https://github.com/apptainer/apptainer/archive/v%{version}%{?vers_suffix}/apptainer-%{version}%{?vers_suffix}.tar.gz
|
|
Source1: README.SUSE
|
|
Source2: SUSE.def
|
|
Source3: SLE-15SP5.def
|
|
Source4: SLE-15SP6.def
|
|
Source5: SLE-15SP7.def
|
|
Source10: Leap.def
|
|
Source20: %{name}-rpmlintrc
|
|
Source21: vendor.tar.gz
|
|
BuildRequires: cryptsetup
|
|
BuildRequires: fdupes
|
|
BuildRequires: gcc
|
|
BuildRequires: git
|
|
BuildRequires: go >= 1.19
|
|
BuildRequires: libuuid-devel
|
|
BuildRequires: make
|
|
BuildRequires: openssl-devel
|
|
BuildRequires: sysuser-tools
|
|
%ifarch aarch64
|
|
BuildRequires: binutils-gold
|
|
%endif
|
|
BuildRequires: libseccomp-devel
|
|
Requires: squashfs
|
|
Requires: squashfuse
|
|
Recommends: fuse2fs
|
|
Recommends: gocryptfs
|
|
Requires: (apptainer-leap = %version if product(Leap) >= 15.5)
|
|
Requires: (apptainer-sle15_5 = %version if product(SUSE_SLE) = 15.5)
|
|
Requires: (apptainer-sle15_6 = %version if product(SUSE_SLE) = 15.6)
|
|
Requires: (apptainer-sle15_7 = %version if product(SUSE_SLE) = 15.7)
|
|
|
|
# Needed for container decryption in userspace, upstream rpms include this
|
|
# but factory should have this seperately
|
|
Recommends: gocryptfs
|
|
PreReq: permissions
|
|
|
|
# there's no golang for ppc64 & %ix86, ppc64le does not have non pie builds
|
|
ExcludeArch: ppc64 ppc64le %ix86 s390 s390x
|
|
|
|
%description
|
|
Apptainer provides functionality to make portable
|
|
containers that can be used across host environments.
|
|
|
|
%package sle15_5
|
|
Summary: Apptainer Definition File Templates for SLE 15 SP5
|
|
BuildArch: noarch
|
|
Requires: apptainer = %version
|
|
|
|
%description sle15_5
|
|
The package provides a definition file template for Apptainer containers
|
|
based on SUSE Linux Enterprise 15 SP5.
|
|
|
|
%package sle15_6
|
|
Summary: Apptainer Definition File Templates for SLE 15 SP6
|
|
BuildArch: noarch
|
|
Requires: apptainer = %version
|
|
|
|
%description sle15_6
|
|
The package provides a definition file template for Apptainer containers
|
|
based on SUSE Linux Enterprise 15 SP6.
|
|
|
|
%package sle15_7
|
|
Summary: Apptainer Definition File Templates for SLE 15 SP7
|
|
BuildArch: noarch
|
|
Requires: apptainer = %version
|
|
|
|
%description sle15_7
|
|
The package provides a definition file template for Apptainer containers
|
|
based on SUSE Linux Enterprise 15 SP7.
|
|
|
|
%package leap
|
|
Summary: Apptainer Definition File Templates for current openSUSE Leap
|
|
BuildArch: noarch
|
|
Requires: apptainer = %version
|
|
|
|
%description leap
|
|
The package provides a definition file template for Apptainer containers
|
|
based on the latest openSUSE Leap release.
|
|
|
|
%prep
|
|
%autosetup -n %{name}-%{version}%{?vers_suffix} -a21
|
|
cp %{S:1} .
|
|
|
|
%build
|
|
|
|
# create VERSION file
|
|
echo %version > VERSION
|
|
# Not all of these parameters currently have an effect, but they might be
|
|
# used someday. They are the same parameters as in the configure macro.
|
|
./mconfig -V %{version}-%{release} \
|
|
-P release \
|
|
--prefix=%{_prefix} \
|
|
--exec-prefix=%{_exec_prefix} \
|
|
--bindir=%{_bindir} \
|
|
--sbindir=%{_sbindir} \
|
|
--sysconfdir=%{_sysconfdir} \
|
|
--datadir=%{_datadir} \
|
|
--includedir=%{_includedir} \
|
|
--libdir=%{_libdir} \
|
|
--libexecdir=%{_libexecdir} \
|
|
--localstatedir=%{_localstatedir}/lib \
|
|
--sharedstatedir=%{_sharedstatedir} \
|
|
--mandir=%{_mandir} \
|
|
--infodir=%{_infodir} \
|
|
--without-suid \
|
|
--reproducible
|
|
|
|
%make_build -C builddir V=""
|
|
|
|
%install
|
|
export GOPATH=$PWD/gopath
|
|
export GOFLAGS=-mod=vendor
|
|
export PATH=$GOPATH/bin:$PATH
|
|
|
|
%make_install -C builddir V=
|
|
install -d -m 0755 %{buildroot}/%{_datarootdir}/apptainer/templates
|
|
install -m 0644 %{S:2} %{S:3} %{S:4} %{S:5} %{S:10} %{buildroot}/%{_datarootdir}/apptainer/templates
|
|
|
|
%fdupes apptainer/examples
|
|
%fdupes -s %buildroot
|
|
|
|
%files
|
|
%doc examples
|
|
%doc CONTRIBUTING.md
|
|
%doc README.md
|
|
%doc CHANGELOG.md
|
|
%doc CONTRIBUTORS.md
|
|
%doc %{basename:%{S:1}}
|
|
%license LICENSE.md
|
|
%license LICENSE_THIRD_PARTY.md
|
|
%license LICENSE_DEPENDENCIES.md
|
|
%{_bindir}/*
|
|
%dir %{_libexecdir}/apptainer
|
|
%dir %{_libexecdir}/apptainer/bin
|
|
%dir %{_libexecdir}/apptainer/cni
|
|
%dir %{_libexecdir}/apptainer/lib
|
|
%dir %{_datarootdir}/apptainer
|
|
%dir %{_datarootdir}/apptainer/templates
|
|
%{_libexecdir}/apptainer/bin/starter
|
|
%{_libexecdir}/apptainer/lib/offsetpreload.so
|
|
%{_libexecdir}/apptainer/cni/*
|
|
%{_datarootdir}/apptainer/templates/%{basename:%{S:2}}
|
|
%dir %{_sysconfdir}/apptainer
|
|
%config(noreplace) %{_sysconfdir}/apptainer/capability.json
|
|
%config(noreplace) %{_sysconfdir}/apptainer/cgroups
|
|
%config(noreplace) %{_sysconfdir}/apptainer/ecl.toml
|
|
%config(noreplace) %{_sysconfdir}/apptainer/global-pgp-public
|
|
%config(noreplace) %{_sysconfdir}/apptainer/network
|
|
%config(noreplace) %{_sysconfdir}/apptainer/nvliblist.conf
|
|
%config(noreplace) %{_sysconfdir}/apptainer/seccomp-profiles
|
|
%config(noreplace) %{_sysconfdir}/apptainer/apptainer.conf
|
|
%config(noreplace) %{_sysconfdir}/apptainer/remote.yaml
|
|
%config(noreplace) %{_sysconfdir}/apptainer/rocmliblist.conf
|
|
%config(noreplace) %{_sysconfdir}/apptainer/dmtcp-conf.yaml
|
|
%{_datadir}/bash-completion/completions/*
|
|
%dir %{_localstatedir}/lib/apptainer
|
|
%dir %{_localstatedir}/lib/apptainer/mnt
|
|
%dir %{_localstatedir}/lib/apptainer/mnt/session
|
|
%{_mandir}/man1/*
|
|
|
|
%files sle15_5
|
|
%{_datarootdir}/apptainer/templates/%{basename:%{S:3}}
|
|
|
|
%files sle15_6
|
|
%{_datarootdir}/apptainer/templates/%{basename:%{S:4}}
|
|
|
|
%files sle15_7
|
|
%{_datarootdir}/apptainer/templates/%{basename:%{S:5}}
|
|
|
|
%files leap
|
|
%{_datarootdir}/apptainer/templates/%{basename:%{S:10}}
|
|
|
|
%changelog
|