commit ba0684af03d921e2554e04a9066dfa462c05ff9588300bc67101b70173d51312 Author: Christian Goll Date: Fri Feb 18 10:34:02 2022 +0000 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 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/README.SUSE b/README.SUSE new file mode 100644 index 0000000..b21b220 --- /dev/null +++ b/README.SUSE @@ -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 + +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: . + Example: SLE-12 SP4 would be 12.4. + The inital release of a major version corresponds to + 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: + + / + // + : SLES, SLE-HPC (SLE-12), + SLE_HPC (SLE-15), SLED + : optional, if ommitted, the value + of OSVersion will be used. + The variable %{OSVERSION} is + recognized and replaced by OSVersion. + : 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----- + + diff --git a/SLE-12SP5.def b/SLE-12SP5.def new file mode 100644 index 0000000..e78fc20 --- /dev/null +++ b/SLE-12SP5.def @@ -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 + diff --git a/SLE-15SP3.def b/SLE-15SP3.def new file mode 100644 index 0000000..0b7c36b --- /dev/null +++ b/SLE-15SP3.def @@ -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 + diff --git a/_service b/_service new file mode 100644 index 0000000..c599762 --- /dev/null +++ b/_service @@ -0,0 +1,5 @@ + + + + + diff --git a/apptainer-1.0.0-rc.2.tar.gz b/apptainer-1.0.0-rc.2.tar.gz new file mode 100644 index 0000000..0787082 --- /dev/null +++ b/apptainer-1.0.0-rc.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98de8783a34d648a0bf5dbc8ec2c549737c8f8319faae0ea264faa578272fda4 +size 5102474 diff --git a/apptainer-rpmlintrc b/apptainer-rpmlintrc new file mode 100644 index 0000000..b7d3b59 --- /dev/null +++ b/apptainer-rpmlintrc @@ -0,0 +1,2 @@ +# Have the same binary with and without setuid bit +addFilter("files-duplicated-waste") diff --git a/apptainer.changes b/apptainer.changes new file mode 100644 index 0000000..4aae21e --- /dev/null +++ b/apptainer.changes @@ -0,0 +1,84 @@ +------------------------------------------------------------------- +Thu Feb 17 15:29:45 UTC 2022 - Christian Goll + +- 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=,destination=[,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 + +- 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 + +- inital commit of apptainer which is a singularity fork diff --git a/apptainer.spec b/apptainer.spec new file mode 100644 index 0000000..0040937 --- /dev/null +++ b/apptainer.spec @@ -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 diff --git a/useful_error_message.patch b/useful_error_message.patch new file mode 100644 index 0000000..b210da9 --- /dev/null +++ b/useful_error_message.patch @@ -0,0 +1,26 @@ +From 5194ad8f863e971dde1c668d9c9de844b58ae893 Mon Sep 17 00:00:00 2001 +From: Christian Goll +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 + diff --git a/vendor.tar.gz b/vendor.tar.gz new file mode 100644 index 0000000..d6417e7 --- /dev/null +++ b/vendor.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ca008a34c696055f9849bb7660cf23d2959e3aa55d67438199bdf5a6c699a56 +size 6827382