SHA256
1
0
forked from pool/apptainer

Accepting request 955828 from home:mslacken:pr

following the apptainer fork

OBS-URL: https://build.opensuse.org/request/show/955828
OBS-URL: https://build.opensuse.org/package/show/network:cluster/apptainer?expand=0&rev=1
This commit is contained in:
Christian Goll 2022-02-18 10:34:02 +00:00 committed by Git OBS Bridge
commit ba0684af03
12 changed files with 523 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

94
README.SUSE Normal file
View File

@ -0,0 +1,94 @@
openSUSE/SUSE specific Settings
===============================
openSUSE and SUSE have a small difference with upstream default.
This means the SUID root binaries distributed by singularty are
executable only by users belonging to the group 'singularity'.
Otherwise, users will get an error message like this one:
FATAL: while executing /usr/lib/singularity/bin/starter-suid: permission denied
To add a user to the group singularity, execute (as root):
# usermod -a -G singularity <user_login>
Create Singularity Images from openSUSE/SLE
===========================================
To create openSUSE/SLE singularity images from scratch a number
of bootdef variables need to be specified:
1. Create a bootdef file (for instance 'sle.def'), add
BootStrap: zypper
2. Set the OS version:
OSVersion: 15.0
The version number corresponds to the Leap version or the
SLE version and service pack level: <version>.<service_pack_level>
Example: SLE-12 SP4 would be 12.4.
The inital release of a major version corresponds to
<service_pack_level> 0.
3. For openSUSE the following additional variables need to be
specified:
* MirrorURL: URL to the installation repository.
Check 'man 8 zypper' for supported formats
* UpdateURL: (optional) URI of the update repository
4. For SLE, all required settings are obtained from SCC.
The following variables are recognized:
* Product: The product code: The following forms may be
used:
<product_id>
<product_id>/<os_version>
<product_id>/<os_version>/<arch>
<product_id>: SLES, SLE-HPC (SLE-12),
SLE_HPC (SLE-15), SLED
<os_version>: optional, if ommitted, the value
of OSVersion will be used.
The variable %{OSVERSION} is
recognized and replaced by OSVersion.
<arch> : The architecture to use. Defaults
to 'uname -m'.
* User: The email a subscription is registed with SCC.
* Regcode: The SCC registration code provided with the subscription.
* ProductPGP: The PGP key used to sign the repositories. Each line must
be terminated with \n. Long lines may be broken using the
continuation character '\'. See below.
Note: this is not required when an installer repository is
provided with MirrorURL.
Beginning with version 15, the URI to the installer image needs to be
provided as well:
* MirrorURL: Repository containing the SLE Installer (see also above).
Since SLE-15 consists of modules, a list of modules to be used should
to be specified as well:
* Modules: Specify the modules in a comma separated list without
spaces. Example:
SLEModules: sle-module-basesystem,sle-module-server-applications,sle-module-web-scripting,sle-module-hpc
Examples
========
Example defintions for SLE12-SP5 and SLE15-SP3 are in the same
directory as README.SUSE
ProductPGP
==========
SLEpgp: -----BEGIN PGP PUBLIC KEY BLOCK-----\n\
Version: rpm-4.11.2 (NSS-3)\n\
\n\
mQENBFEKlmsBCADbpZZbbSC5Zi+HxCR/ynYsVxU5JNNiSSZabN5GMgc9Z0hxeXxp\n\
YWvFoE/4n0+IXIsp83iKvxf06Eu8je/DXp0lMqDZu7WiT3XXAlkOPSNV4akHTDoY\n\
91SJaZCpgUJ7K1QXOPABNbREsAMN1a7rxBowjNjBUyiTJ2YuvQRLtGdK1kExsVma\n\
hieh/QxpoDyYd5w/aky3z23erCoEd+OPfAqEHd5tQIa6LOosa63BSCEl3milJ7J9\n\
vDmoGPAoS6ui7S2R5X4/+PLN8Mm2kOBrFjhmL93LX0mrGCMxsNsKgP6zabYKQEb8\n\
L028SXvl7EGoA+Vw5Vd3wIGbM73PfbgNrXjfABEBAAG0KFN1U0UgUGFja2FnZSBT\n\
aWduaW5nIEtleSA8YnVpbGRAc3VzZS5kZT6JATwEEwECACYCGwMGCwkIBwMCBBUC\n\
CAMEFgIDAQIeAQIXgAUCWEfrHwUJDsIitAAKCRBwr56BOdt8gpqUB/wPSSS5BcDu\n\
Oi4n02cj4Hdt7WITKBjjo0lG1fXG1ppx1wOST+s8FertMVFY53TW6FGjcYtwVOIq\n\
rsMYiV6kf1NxUV/jcAy7VmC5EZnO0R/D3sT4Oh5hsLtERauZolK5BZmd0S51Qa8e\n\
TxZ5mX9PL2i3s/ShETc30drf83ugc7B4yZPNQWXNDPgGcC+hEeC5qw48RzHYIpUt\n\
RzHmefR5Z3ioTUbDlzy+SGP2uA7mhR4Lfk/df5fYxWfCoKlyGjtrvA65cB+Pksyn\n\
xrAeBuB+vBM+KnDrxW2Sn4AbWkzH//dfz9OJDJu4UM91hb7qxM0OkrXHQV3iNqzg\n\
MDEhky/9NqMy\n\
=GdP5\n\
-----END PGP PUBLIC KEY BLOCK-----

52
SLE-12SP5.def Normal file
View File

@ -0,0 +1,52 @@
BootStrap: zypper
OSVersion: 12.5
Include: zypper
Product: SLE-HPC/12.5/x86_64
User: EMAIL
Regcode: REGCODE
Modules: \n\
sle-module-hpc/12/x86_64,\n\
sle-module-web-scripting/12/x86_64,\n\
sle-module-legacy/12/x86_64,\n\
sle-sdk/12.5/x86_64,\n\
sle-module-toolchain/12/x86_64
ProductPGP:\n\
SLEpgp: -----BEGIN PGP PUBLIC KEY BLOCK-----\n\
Version: rpm-4.11.2 (NSS-3)\n\
\n\
mQENBFEKlmsBCADbpZZbbSC5Zi+HxCR/ynYsVxU5JNNiSSZabN5GMgc9Z0hxeXxp\n\
YWvFoE/4n0+IXIsp83iKvxf06Eu8je/DXp0lMqDZu7WiT3XXAlkOPSNV4akHTDoY\n\
91SJaZCpgUJ7K1QXOPABNbREsAMN1a7rxBowjNjBUyiTJ2YuvQRLtGdK1kExsVma\n\
hieh/QxpoDyYd5w/aky3z23erCoEd+OPfAqEHd5tQIa6LOosa63BSCEl3milJ7J9\n\
vDmoGPAoS6ui7S2R5X4/+PLN8Mm2kOBrFjhmL93LX0mrGCMxsNsKgP6zabYKQEb8\n\
L028SXvl7EGoA+Vw5Vd3wIGbM73PfbgNrXjfABEBAAG0KFN1U0UgUGFja2FnZSBT\n\
aWduaW5nIEtleSA8YnVpbGRAc3VzZS5kZT6JATwEEwECACYCGwMGCwkIBwMCBBUC\n\
CAMEFgIDAQIeAQIXgAUCWEfrHwUJDsIitAAKCRBwr56BOdt8gpqUB/wPSSS5BcDu\n\
Oi4n02cj4Hdt7WITKBjjo0lG1fXG1ppx1wOST+s8FertMVFY53TW6FGjcYtwVOIq\n\
rsMYiV6kf1NxUV/jcAy7VmC5EZnO0R/D3sT4Oh5hsLtERauZolK5BZmd0S51Qa8e\n\
TxZ5mX9PL2i3s/ShETc30drf83ugc7B4yZPNQWXNDPgGcC+hEeC5qw48RzHYIpUt\n\
RzHmefR5Z3ioTUbDlzy+SGP2uA7mhR4Lfk/df5fYxWfCoKlyGjtrvA65cB+Pksyn\n\
xrAeBuB+vBM+KnDrxW2Sn4AbWkzH//dfz9OJDJu4UM91hb7qxM0OkrXHQV3iNqzg\n\
MDEhky/9NqMy\n\
=GdP5\n\
-----END PGP PUBLIC KEY BLOCK-----
%post
ln -s /etc/products.d/SLE-HPC.prod /etc/products.d/baseproduct
SUSEConnect -p PackageHub/12.5/x86_64
zypper install -y bash coreutils e2fsprogs \
ethtool filesystem findutils gawk grep \
iputils iproute2 net-tools nfs-client pam psmisc rsync sed \
rsyslog util-linux words wicked tar less \
gzip which util-linux \
pciutils vim strace sudo syslinux tcpdump timezone chrony cpio \
wget openssh
# up to here, its a base container, line below can be used
# used for warewulf
zypper install -y ipmitool kernel-default
systemctl enable sshd

53
SLE-15SP3.def Normal file
View File

@ -0,0 +1,53 @@
BootStrap: zypper
OSVersion: 15.3
Include: zypper
Product: SLES/15.3/x86_64
User: EMAIL
Regcode: REGCODE
MirrorURL: https://updates.suse.com/SUSE/Products/SLE-BCI/15-SP3/x86_64/product/
# Just base modules here, other modules are installed in post
Modules: \n\
sle-module-basesystem,\n\
sle-module-server-applications
ProductPGP:\n\
SLEpgp: -----BEGIN PGP PUBLIC KEY BLOCK-----\n\
Version: rpm-4.11.2 (NSS-3)\n\
\n\
mQENBFEKlmsBCADbpZZbbSC5Zi+HxCR/ynYsVxU5JNNiSSZabN5GMgc9Z0hxeXxp\n\
YWvFoE/4n0+IXIsp83iKvxf06Eu8je/DXp0lMqDZu7WiT3XXAlkOPSNV4akHTDoY\n\
91SJaZCpgUJ7K1QXOPABNbREsAMN1a7rxBowjNjBUyiTJ2YuvQRLtGdK1kExsVma\n\
hieh/QxpoDyYd5w/aky3z23erCoEd+OPfAqEHd5tQIa6LOosa63BSCEl3milJ7J9\n\
vDmoGPAoS6ui7S2R5X4/+PLN8Mm2kOBrFjhmL93LX0mrGCMxsNsKgP6zabYKQEb8\n\
L028SXvl7EGoA+Vw5Vd3wIGbM73PfbgNrXjfABEBAAG0KFN1U0UgUGFja2FnZSBT\n\
aWduaW5nIEtleSA8YnVpbGRAc3VzZS5kZT6JATwEEwECACYCGwMGCwkIBwMCBBUC\n\
CAMEFgIDAQIeAQIXgAUCWEfrHwUJDsIitAAKCRBwr56BOdt8gpqUB/wPSSS5BcDu\n\
Oi4n02cj4Hdt7WITKBjjo0lG1fXG1ppx1wOST+s8FertMVFY53TW6FGjcYtwVOIq\n\
rsMYiV6kf1NxUV/jcAy7VmC5EZnO0R/D3sT4Oh5hsLtERauZolK5BZmd0S51Qa8e\n\
TxZ5mX9PL2i3s/ShETc30drf83ugc7B4yZPNQWXNDPgGcC+hEeC5qw48RzHYIpUt\n\
RzHmefR5Z3ioTUbDlzy+SGP2uA7mhR4Lfk/df5fYxWfCoKlyGjtrvA65cB+Pksyn\n\
xrAeBuB+vBM+KnDrxW2Sn4AbWkzH//dfz9OJDJu4UM91hb7qxM0OkrXHQV3iNqzg\n\
MDEhky/9NqMy\n\
=GdP5\n\
-----END PGP PUBLIC KEY BLOCK-----
%post
update-ca-certificates
SUSEConnect -p PackageHub/15.3/x86_64
SUSEConnect -p sle-module-web-scripting/15.3/x86_64
SUSEConnect -p sle-module-hpc/15.3/x86_64
zypper install -y bash coreutils e2fsprogs \
ethtool filesystem findutils gawk grep \
iputils iproute2 net-tools nfs-client pam psmisc rsync sed \
rsyslog util-linux words wicked tar less \
gzip which util-linux \
pciutils vim strace sudo syslinux tcpdump timezone chrony cpio \
wget openssh
# up to here, its a base container, line below can be used
# used for warewulf
zypper in -y kernel-default ipmitool
systemctl enable sshd

5
_service Normal file
View File

@ -0,0 +1,5 @@
<services>
<service name="go_modules" mode="disabled">
</service>
</services>

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:98de8783a34d648a0bf5dbc8ec2c549737c8f8319faae0ea264faa578272fda4
size 5102474

2
apptainer-rpmlintrc Normal file
View File

@ -0,0 +1,2 @@
# Have the same binary with and without setuid bit
addFilter("files-duplicated-waste")

84
apptainer.changes Normal file
View File

@ -0,0 +1,84 @@
-------------------------------------------------------------------
Thu Feb 17 15:29:45 UTC 2022 - Christian Goll <cgoll@suse.com>
- Updated to v1.0.0-rc1 changes to singularity 3.9.5 are
* The primary executable has been changed from singularity to apptainer.
However, a singularity command symlink alias has been created pointing to
the apptainer command. The contents of containers are unchanged and
continue to use the singularity name for startup scripts, etc.
* The per-user configuration directory has changed from ~/.singularity to
~/.apptainer. The first time the apptainer command accesses the user
configuration directory, relevant configuration is automatically imported
from the old directory to the new one.
* Environment variables have all been changed to have an APPTAINER prefix
instead of a SINGULARITY prefix. However, SINGULARITY prefix variables are
still recognized. If only a SINGULARITY prefix variable exists, a warning
will be printed about deprecated usage and then the value will be used. If
both prefixes exist and the value is the same, no warning is printed; this
is the recommended method to set environment variables for those who need
to support both apptainer and singularity. If both prefixes exist for the
same variable and the value is different then a warning is also printed.
* The default SylabsCloud remote endpoint has been removed and replaced by
one called DefaultRemote which has no defined server for the library://
URI. System administrators may restore the old default if they wish by
adding it to /etc/apptainer/remote.yaml with a URI of cloud.sylabs.io and
setting it there as the Active remote, or users can add it to their own
configuration with the commands apptainer remote add SylabsCloud
cloud.sylabs.io and apptainer remote use SylabsCloud.
* The DefaultRemote's key server is https://keys.openpgp.org instead of the
Sylabs key server
* The apptainer build --remote option has been removed because there is no
standard protocol or non-commercial service that supports it.
- New Features:
* Honor image binds and user binds in the order they're given instead of
always doing image binds first.
* Experimental support for checkpointing of instances using DMTCP has been
added. Additional flags --dmtcp-launch and --dmtcp-restart has been added
to the apptainer instance start command, and a checkpoint command group has
been added to manage the checkpoint state. A new
/etc/apptainer/dmtcp-conf.yaml configuration file is also added.
Limitations are that it can only work with dynamically linked applications
and the container has to be based on glibc.
* --writable-tmpfs can be used with apptainer build to run the %test section
of the build with a ephemeral tmpfs overlay, permitting tests that write to
the container filesystem.
* The --compat flag for actions is a new short-hand to enable a number of
options that increase OCI/Docker compatibility. Infers --containall,
--no-init, --no-umask, --writable-tmpfs. Does not use user, uts, or network
namespaces as these may not be supported on many installations.
* The experimental --nvccli flag will use nvidia-container-cli to setup the
container for Nvidia GPU operation. Apptainer will not bind GPU libraries
itself. Environment variables that are used with Nvidia's docker-nvidia
runtime to configure GPU visibility / driver capabilities & requirements
are parsed by the --nvccli flag from the environment of the calling user.
By default, the compute and utility GPU capabilities are configured. The
use nvidia-container-cli option in apptainer.conf can be set to yes to
always use nvidia-container-cli when supported. --nvccli is not supported
in the setuid workflow, and it requires being used in combination with
--writable in user namespace mode. Please see documentation for more
details.
* The --apply-cgroups flag can be used to apply cgroups resource and device
restrictions on a system using the v2 unified cgroups hierarchy. The
resource restrictions must still be specified in the v1 / OCI format, which
will be translated into v2 cgroups resource restrictions, and eBPF device
restrictions.
* A new --mount flag and APPTAINER_MOUNT environment variable can be used to
specify bind mounts in
type=bind,source=<src>,destination=<dst>[,options...] format. This improves
CLI compatibility with other runtimes, and allows binding paths containing
: and , characters (using CSV style escaping).
* Perform concurrent multi-part downloads for library:// URIs. Uses 3
concurrent downloads by default, and is configurable in apptainer.conf or
via environment variables.
-------------------------------------------------------------------
Wed Dec 15 08:38:57 UTC 2021 - Christian Goll <cgoll@suse.com>
- Explicit dependcy on go1.16.12 or go1.17.5 which fix
(CVE-2021-44717) and (CVE-2021-44716) that may affect singualrity
-------------------------------------------------------------------
Mon Dec 13 12:55:47 UTC 2021 - Christian Goll <cgoll@suse.com>
- inital commit of apptainer which is a singularity fork

177
apptainer.spec Normal file
View File

@ -0,0 +1,177 @@
#
# spec file for package apptainer
#
# Copyright (c) 2021 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
%define vers_suffix -rc.2
Summary: Application and environment virtualization
License: BSD-3-Clause-LBNL
Group: Productivity/Clustering/Computing
Name: apptainer
Version: 1.0.0
Release: 0
# https://spdx.org/licenses/BSD-3-Clause-LBNL.html
URL: https://apptainer.org
Source0: https://github.com/apptainer/apptainer/archive/v%{version}%{?vers_suffix}/apptainer-%{version}%{?vers_suffix}.tar.gz
Source1: README.SUSE
Source2: SLE-12SP5.def
Source3: SLE-15SP3.def
Source5: %{name}-rpmlintrc
Source10: vendor.tar.gz
Patch1: useful_error_message.patch
BuildRequires: cryptsetup
BuildRequires: fdupes
BuildRequires: gcc
BuildRequires: git
BuildRequires: go >= 1.17
BuildRequires: libuuid-devel
BuildRequires: make
BuildRequires: openssl-devel
BuildRequires: sysuser-tools
%ifarch aarch64
BuildRequires: binutils-gold
%endif
BuildRequires: libseccomp-devel
Requires: squashfs
PreReq: permissions
# there's no golang for ppc64, ppc64le does not have non pie builds
ExcludeArch: ppc64 ppc64le
Provides: %{name}-runtime
Provides: singularity
Provides: singularity-runtime
%description
Singularity provides functionality to make portable
containers that can be used across host environments.
%prep
%setup -q -n gopath/%{apptainerpath} -c
cp %{S:1} %{S:2} %{S:3} .
mv %{name}-%{version}%{?vers_suffix} %{name}
cd %{_builddir}/gopath/%{apptainerpath}/apptainer
%patch1 -p1
%build
cd %{name}
# 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.
tar xzf %{S:10}
./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}
cd builddir
make V="" old_config=
%install
export GOPATH=$PWD/gopath
export GOFLAGS=-mod=vendor
export PATH=$GOPATH/bin:$PATH
cd %{name}/builddir
mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1
make DESTDIR=$RPM_BUILD_ROOT install man
# move bash completion to the right place
mkdir -pv %{buildroot}/%{_datadir}/bash-completion/completions/
mv %{buildroot}/%{_sysconfdir}/bash_completion.d/apptainer \
%{buildroot}/%{_datadir}/bash-completion/completions/
cd ../..
%fdupes apptainer/examples
mkdir -p .tmp
for j in LICENSE.md LICENSE; do
for i in `find . -name $j`; do
k="`basename ${i/%\/$j/-$j}`"
if ! [[ $k =~ apptainer-.* ]]; then
cp $i .tmp/$k
fi
done
done
echo "g %name -" > system-group-%{name}.conf
%sysusers_generate_pre system-group-%{name}.conf %{name} system-group-%{name}.conf
install -D -m 644 system-group-%{name}.conf %{buildroot}%{_sysusersdir}/system-group-%{name}.conf
%fdupes -s .tmp
mv .tmp/* .
rmdir .tmp
%pre -f %{name}.pre
%post
%set_permissions %{_libexecdir}/apptainer/bin/starter-suid
%verifyscript
%set_permissions %{_libexecdir}/apptainer/bin/starter-suid
%files
%doc apptainer/examples
%doc apptainer/CONTRIBUTING.md
%doc apptainer/README.md
%doc apptainer/CHANGELOG.md
%doc apptainer/CONTRIBUTORS.md
%doc %{basename:%{S:1}}
%doc %{basename:%{S:2}}
%doc %{basename:%{S:3}}
%license apptainer/LICENSE-LBNL.md
%license apptainer/COPYRIGHT.md
%license apptainer/LICENSE.md
%license *-LICENSE.md *-LICENSE
%attr(4750, root, apptainer) %{_libexecdir}/apptainer/bin/starter-suid
%{_bindir}/*
%dir %{_libexecdir}/apptainer
%dir %{_libexecdir}/apptainer/bin
%dir %{_libexecdir}/apptainer/cni
%{_libexecdir}/apptainer/bin/starter
%{_libexecdir}/apptainer/cni/*
%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/apptainer
%dir %{_localstatedir}/lib/apptainer
%dir %{_localstatedir}/lib/apptainer/mnt
%dir %{_localstatedir}/lib/apptainer/mnt/session
%{_mandir}/man1/*
%{_sysusersdir}/system-group-%{name}.conf
%changelog

View File

@ -0,0 +1,26 @@
From 5194ad8f863e971dde1c668d9c9de844b58ae893 Mon Sep 17 00:00:00 2001
From: Christian Goll <cgoll@suse.de>
Date: Mon, 13 Dec 2021 14:35:41 +0100
Subject: [PATCH] Add an useful error message when the user doesn't belong to
the singularity group
---
internal/pkg/util/starter/starter.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/internal/pkg/util/starter/starter.go b/internal/pkg/util/starter/starter.go
index 11858ee20..5f76ac08d 100644
--- a/internal/pkg/util/starter/starter.go
+++ b/internal/pkg/util/starter/starter.go
@@ -94,7 +94,7 @@ func Exec(name string, config *config.Common, ops ...CommandOp) error {
return fmt.Errorf("while initializing starter command: %s", err)
}
err := unix.Exec(c.path, []string{name}, c.env)
- return fmt.Errorf("while executing %s: %s", c.path, err)
+ return fmt.Errorf("while executing %s: %s\nPlease read /usr/share/doc/packages/singularity/README.SUSE to get help\n", c.path, err)
}
// Run executes the starter binary and returns once starter
--
2.34.1

3
vendor.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4ca008a34c696055f9849bb7660cf23d2959e3aa55d67438199bdf5a6c699a56
size 6827382