Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package apptainer for openSUSE:Factory checked in at 2022-08-05 19:50:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/apptainer (Old) and /work/SRC/openSUSE:Factory/.apptainer.new.1521 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "apptainer" Fri Aug 5 19:50:55 2022 rev:4 rq:993259 version:1.1.0 Changes: -------- --- /work/SRC/openSUSE:Factory/apptainer/apptainer.changes 2022-07-11 19:11:11.079764334 +0200 +++ /work/SRC/openSUSE:Factory/.apptainer.new.1521/apptainer.changes 2022-08-05 19:51:54.573596430 +0200 @@ -1,0 +2,136 @@ +Thu Aug 4 12:31:33 UTC 2022 - Christian Goll <cg...@suse.com> + +- Updated to version 1.1.0-rc1 which enables apptainer to run without + suid and additional groups. Although this is a prerelease this is + a major advantage justifying its use. + * Added a squashfuse image driver that enables mounting SIF files without + using setuid-root. Requires the squashfuse command and unprivileged user + namespaces. + * Added a fuse2fs image driver that enables mounting EXT3 files and EXT3 SIF + overlay partitions without using setuid-root. Requires the fuse2fs command + and unprivileged user namespaces. + * Added the ability to use persistent overlay (--overlay) and + --writable-tmpfs without using setuid-root. This requires unprivileged user + namespaces and either a new enough kernel (>= 5.11) or the fuse-overlayfs + command. Persistent overlay works when the overlay path points to a regular + filesystem (known as "sandbox" mode, which is not allowed when in setuid + mode), or when it points to an EXT3 image. Does not work with a SIF + partition because that requires privileges to mount as an ext3 image. + * Extended the --fakeroot option to be useful when /etc/subuid and + /etc/subgid mappings have not been set up. If they have not been set up, a + root-mapped unprivileged user namespace (the equivalent of unshare -r) + and/or the fakeroot command from the host will be tried. Together they + emulate the mappings pretty well but they are simpler to administer. This + feature is especially useful with the --overlay and --writable-tmpfs + options and for building containers unprivileged, because they allow + installing packages that assume they're running as root. A limitation on + using it with --overlay and --writable-tmpfs however is that when only the + fakeroot command can be used (because there are no user namespaces + available, in suid mode) then the base image has to be a sandbox. This + feature works nested inside of an apptainer container, where another + apptainer command will also be in the fakeroot environment without + requesting the --fakeroot option again, or it can be used inside an + apptainer container that was not started with --fakeroot. However, the + fakeroot command uses LD_PRELOAD and so needs to be bound into the + container which requires a compatible libc. For that reason it doesn't work + when the host and container operating systems are of very different + vintages. If that's a problem and you want to use only an unprivileged + root-mapped namespace even when the fakeroot command is installed, just run + apptainer with unshare -r. + * Made the --fakeroot option be implied when an unprivileged user builds a + container from a definition file. When /etc/subuid and /etc/subgid mappings + are not available, all scriptlets are run in a root-mapped unprivileged + namespace (when possible) and the %post scriptlet is additionally run with + the fakeroot command. When unprivileged user namespaces are not available, + such that only the fakeroot command can be used, the --fix-perms option is + implied to allow writing into directories. + * Added a --fakeroot option to the apptainer overlay create command to make + an overlay EXT3 image file that works with the fakeroot that comes from + unprivileged root-mapped namespaces. This is not needed with the fakeroot + that comes with /etc/sub[ug]id mappings nor with the fakeroot that comes + with only the fakeroot command in suid flow. + * $HOME is now used to find the user's configuration and cache by default. If + that is not set it will fall back to the previous behavior of looking up + the home directory in the password file. The value of $HOME inside the + container still defaults to the home directory in the password file and can + still be overridden by the --home option. + * When starting a container, if the user has specified the cwd by using the + --pwd flag, if there is a problem an error is returned instead of + defaulting to a different directory. + * Nesting of bind mounts now works even when a --bind option specified a + different source and destination with a colon between them. Now the + APPTAINER_BIND environment variable makes sure the bind source is from the + bind destination so it will be succesfully re-bound into a nested apptainer + container. + * The warning about more than 50 bind mounts required for an underlay bind + has been changed to an info message. + * oci mount sets Process.Terminal: true when creating an OCI config.json, so + that oci run provides expected interactive behavior by default. + The default hostname for oci mount containers is now apptainer instead of mrsdalloway. + * systemd is now supported and used as the default cgroups manager. Set + systemd cgroups = no in apptainer.conf to manage cgroups directly via the + cgroupfs. + * Added a new action flag --no-eval which: + + Prevents shell evaluation of APPTAINERENV_ / --env / --env-file + environment variables as they are injected in the container, to match + OCI behavior. Applies to all containers. + + Prevents shell evaluation of the values of CMD / ENTRYPOINT and command + line arguments for containers run or built directly from an OCI/Docker + source. Applies to newly built containers only, use apptainer inspect + to check version that container was built with. + * Added --no-eval to the list of flags set by the OCI/Docker --compat mode. + * sinit process has been renamed to appinit. + * Added --keysdir to key command to provide an alternative way of setting + local keyring path. The existing reading of the keyring path from + environment variable 'APPTAINER_KEYSDIR' is untouched. + * apptainer key push will output the key server's response if included in + order to help guide users through any identity verification the server may + require. + * ECL no longer requires verification for all signatures, but only when + signature verification would alter the expected behavior of the list: + + At least one matching signature included in a whitelist must be + validated, but other unvalidated signatures do not cause ECL to fail. + + All matching signatures included in a whitestrict must be validated, + but unvalidated signatures not in the whitestrict do not cause ECL to + fail. + + Signature verification is not checked for a blacklist; unvalidated + signatures can still block execution via ECL, and unvalidated + signatures not in the blacklist do not cause ECL to fail. +- New features / functionalities + * Non-root users can now use --apply-cgroups with run/shell/exec to limit + container resource usage on a system using cgroups v2 and the systemd + cgroups manager. + * Native cgroups v2 resource limits can be specified using the [unified] key + in a cgroups toml file applied via --apply-cgroups. + * Added --cpu*, --blkio*, --memory*, --pids-limit flags to apply cgroups + resource limits to a container directly. + Added instance stats command. + * The --no-mount flag & APPTAINER_NO_MOUNT env var can now be used to disable + a bind path entry from apptainer.conf by specifying the absolute path to + the destination of the bind. + * Apptainer now supports the riscv64 architecture. + * remote add --insecure may now be used to configure endpoints that are only + accessible via http. Alternatively the environment variable + APPTAINER_ADD_INSECURE can be set to true to allow http remotes to be added + wihtout the --insecure flag. Specifying https in the remote URI overrules + both --insecure and APPTAINER_ADD_INSECURE. + * Gpu flags --nv and --rocm can now be used from an apptainer nested inside + another apptainer container. + * Added --public, --secret, and --both flags to the key remove command to + support removing secret keys from the apptainer keyring. + * Debug output can now be enabled by setting the APPTAINER_DEBUG env var. + * Debug output is now shown for nested apptainer calls, in wrapped unsquashfs + image extraction, and build stages. +- Bug fixes + * Remove warning message about SINGULARITY and APPTAINER variables having + different values when the SINGULARITY variable is not set. + * Add specific error for unreadable image / overlay file. + * Pass through a literal \n in host environment variables to the container. + * Fix loop device creation with loop-control when running inside docker containers. + * Fix the issue that the oras protocol would ignore the --no-https/--nohttps flag. +- File changes + * Removed useful_error_message.patch as not needed any more + * Added fix-32bit-compilation.patch from upstream + + +------------------------------------------------------------------- Old: ---- apptainer-1.0.3.tar.gz useful_error_message.patch New: ---- apptainer-1.1.0-rc.1.tar.gz fix-32bit-compilation.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ apptainer.spec ++++++ --- /var/tmp/diff_new_pack.h7Hi4M/_old 2022-08-05 19:51:55.325598371 +0200 +++ /var/tmp/diff_new_pack.h7Hi4M/_new 2022-08-05 19:51:55.329598382 +0200 @@ -19,13 +19,13 @@ %define apptainerpath src/github.com/apptainer/ %define _buildshell /bin/bash -#%%define vers_suffix -rc.2 +%define vers_suffix -rc.1 Summary: Application and environment virtualization License: BSD-3-Clause-LBNL Group: Productivity/Clustering/Computing Name: apptainer -Version: 1.0.3 +Version: 1.1.0 Release: 0 # https://spdx.org/licenses/BSD-3-Clause-LBNL.html URL: https://apptainer.org @@ -35,7 +35,7 @@ Source3: SLE-15SP3.def Source5: %{name}-rpmlintrc Source10: vendor.tar.gz -Patch1: useful_error_message.patch +Patch1: fix-32bit-compilation.patch BuildRequires: cryptsetup BuildRequires: fdupes BuildRequires: gcc @@ -55,8 +55,8 @@ # there's no golang for ppc64, ppc64le does not have non pie builds ExcludeArch: ppc64 ppc64le -Provides: %{name}-runtime Obsoletes: singularity +Obsoletes: singularity-ce Obsoletes: singularity-runtime %description @@ -91,7 +91,8 @@ --localstatedir=%{_localstatedir}/lib \ --sharedstatedir=%{_sharedstatedir} \ --mandir=%{_mandir} \ - --infodir=%{_infodir} + --infodir=%{_infodir} \ + --without-suid cd builddir make V="" old_config= @@ -101,8 +102,7 @@ export PATH=$GOPATH/bin:$PATH cd %{name}/builddir -mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1 -make DESTDIR=$RPM_BUILD_ROOT install man +make DESTDIR=$RPM_BUILD_ROOT install cd ../.. %fdupes apptainer/examples mkdir -p .tmp @@ -115,21 +115,10 @@ 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 +%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 +%fdupes -s %buildroot %files %doc apptainer/examples @@ -142,12 +131,13 @@ %doc %{basename:%{S:3}} %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 +%dir %{_libexecdir}/apptainer/lib %{_libexecdir}/apptainer/bin/starter +%{_libexecdir}/apptainer/lib/offsetpreload.so %{_libexecdir}/apptainer/cni/* %dir %{_sysconfdir}/apptainer %config(noreplace) %{_sysconfdir}/apptainer/capability.json @@ -166,6 +156,5 @@ %dir %{_localstatedir}/lib/apptainer/mnt %dir %{_localstatedir}/lib/apptainer/mnt/session %{_mandir}/man1/* -%{_sysusersdir}/system-group-%{name}.conf %changelog ++++++ README.SUSE ++++++ --- /var/tmp/diff_new_pack.h7Hi4M/_old 2022-08-05 19:51:55.373598495 +0200 +++ /var/tmp/diff_new_pack.h7Hi4M/_new 2022-08-05 19:51:55.377598506 +0200 @@ -1,18 +1,3 @@ -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 'apptainer'. - -Otherwise, users will get an error message like this one: - -FATAL: while executing /usr/lib/apptainer/bin/starter-suid: permission denied - -To add a user to the group apptainer, execute (as root): - - # usermod -a -G apptainer <user_login> - Create Apptainer Images from openSUSE/SLE =========================================== ++++++ fix-32bit-compilation.patch ++++++ >From cf82cf54c592e1fb86fe0b552c2a1769c5193725 Mon Sep 17 00:00:00 2001 From: Dave Dykstra <2129743+drda...@users.noreply.github.com> Date: Tue, 2 Aug 2022 11:55:17 -0500 Subject: [PATCH] fix 32bit compilation Signed-off-by: Dave Dykstra <2129743+drda...@users.noreply.github.com> --- internal/pkg/util/fs/overlay/overlay_linux.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/pkg/util/fs/overlay/overlay_linux.go b/internal/pkg/util/fs/overlay/overlay_linux.go index b5eff4bd2..7b220f97f 100644 --- a/internal/pkg/util/fs/overlay/overlay_linux.go +++ b/internal/pkg/util/fs/overlay/overlay_linux.go @@ -81,7 +81,7 @@ func check(path string, d dir, allowType int64) error { return nil } - if stfs.Type == allowType { + if int64(stfs.Type) == allowType { return nil } -- 2.37.1 ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/apptainer/vendor.tar.gz /work/SRC/openSUSE:Factory/.apptainer.new.1521/vendor.tar.gz differ: char 5, line 1