singularity: fix defaultPath and reflect upstream changes#158486
singularity: fix defaultPath and reflect upstream changes#158486jbedo merged 6 commits intoNixOS:masterfrom
Conversation
|
Update: Switched to |
7558f7c to
4b60522
Compare
b441b33 to
6090b6b
Compare
6090b6b to
c2ca9f0
Compare
c2ca9f0 to
b8c0153
Compare
|
Change the way how packages are called to preserve the |
b8c0153 to
d9fe06c
Compare
2839a78 to
a0cdde4
Compare
a0cdde4 to
f20aa36
Compare
|
689b21f to
8ae6d14
Compare
|
I'll downgrade Apptainer to 1.1.3 before apptainer/apptainer#958 gets fixed by apptainer/apptainer#967 , since it affects the behavior for Apptainer to find the configuration file. |
41deca7 to
eb6d680
Compare
|
Just add Now NixOS users specifying Update: |
|
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
eb6d680 to
4523f51
Compare
SuperSandro2000
left a comment
There was a problem hiding this comment.
last nits, other than LGTM
4523f51 to
370ae14
Compare
|
This is great, I think we can merge it after resolving the conflicts. |
Upstream changes:
singularity 3.8.7 (the legacy) -> apptainer 1.1.3 (the renamed) / singularity 3.10.4 (Sylabs's fork)
Build process:
* Share between different sources
* Fix the sed regexp to make defaultPath patch work
* allowGoReference is now true
* Provied input parameter removeCompat (default to false)
that removes the compatible "*singularity*" symbolic links
and related autocompletion files when projectName != "singularity"
* Change localstatedir to /var/lib
* Format with nixpkgs-fmt
* Fix the defaultPath patching
and use it instead of the `<executable> path` config directive
deprecated in Apptainer
* Provide dependencies for new functionalities such as
squashfuse (unprivileged squashfs mount)
* Provide an attribute `defaultPathInputs` to override
prefix of container runtime default PATH
NixOS module programs.singularity:
* Allow users to specify packages
* Place related directories to /var/lib
* Format with nixpkgs-fmt
singularity-tools:
* Allow users to specify packages
* Place related directories to /var/lib when building images in VM
This patch provides input arguments `newuidmapPath` and `newgidmapPath` for apptainer and singularity to specify the path to the SUID-ed executables newuidmap and newgidmap where they are not available from the FHS PATH. As NixOS places those suided executables in a non-FHS position (/run/wrapper/bin), this patch provides programs.singularity.enableFakeroot option and implement with the above input parameters.
370ae14 to
d35f5c2
Compare
|
Rebased onto the updated master branch and resolved the merge conflict. |
Motivation for this change
Upstream changes:
singularity 3.8.7 ->
singularity-legacy 3.8.7/ apptainer 1.0.3 / singularity (singularity-ce) 3.10.4Build process:
bashto the defaultPath to provideshexecutable.allowGoReferencetrue to allow singularity to compile plugins when building container images.buildGoModuleand passvendorSha256as a function argument to allow building from non-vendored source.SetdoChecktrue.nixpkgs-fmt.enableSuidthat defaults tofalse.--with-suidor--without-suidwill be passed tomconfigaccording toenableSuidthe upstream's policy to enable / disable the SUID support by default.This parameter will be
overwritetofalsein the NixOS moduleprograms.singularity.Add man page output.NixOS module programs.singularity:
nixpkgs-fmt.Singularity (the upstream) renamed themselves to Apptainer to distinguish themselves from a fork made by Sylabs Inc..
https://sylabs.io/2021/05/singularity-community-edition
https://apptainer.org/news/community-announcement-20211130
In this PR
singularity-legacyis from the original repo before the renaming.apptaineris from the new repo after the renaming.singularity-ceis from the fork of Sylabs Inc..As
apptaineris still at pre-released version1.0.0-rc1and the source and the revision of the previoussingularityderivation is the same as that ofsingularity-legacyhere,is chosen.
WIP: Update the release note.Done.Things done
sandbox = trueset innix.conf? (See Nix manual)nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/)nixos/doc/manual/md-to-db.shto update generated release notes