Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 114 lines 3.9 kB view raw
1{ 2 callPackage, 3 fetchFromGitHub, 4 nixos, 5 conmon, 6}: 7let 8 apptainer = 9 callPackage 10 (import ./generic.nix rec { 11 pname = "apptainer"; 12 version = "1.4.1"; 13 projectName = "apptainer"; 14 15 src = fetchFromGitHub { 16 owner = "apptainer"; 17 repo = "apptainer"; 18 tag = "v${version}"; 19 hash = "sha256-1deSlDNk8ZI/z1eWmslesXO0ypCoMxCJMdihFPCSPIc="; 20 }; 21 22 # Override vendorHash with overrideAttrs. 23 # See https://nixos.org/manual/nixpkgs/unstable/#buildGoModule-vendorHash 24 vendorHash = "sha256-HP5XJ74ELaZT/bZgAPqe7vBPvJhHwyZVSNrUa+KToIE="; 25 26 extraDescription = " (previously known as Singularity)"; 27 extraMeta.homepage = "https://apptainer.org"; 28 }) 29 { 30 # Apptainer doesn't depend on conmon 31 conmon = null; 32 33 # Apptainer builders require explicit --with-suid / --without-suid flag 34 # when building on a system with disabled unprivileged namespace. 35 # See https://github.com/NixOS/nixpkgs/pull/215690#issuecomment-1426954601 36 defaultToSuid = null; 37 38 sourceFilesWithDefaultPaths = { 39 "cmd/internal/cli/actions.go" = [ "/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin" ]; 40 "e2e/env/env.go" = [ "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ]; 41 "internal/pkg/util/env/env.go" = [ "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ]; 42 }; 43 }; 44 45 singularity = 46 callPackage 47 (import ./generic.nix rec { 48 pname = "singularity-ce"; 49 version = "4.3.2"; 50 projectName = "singularity"; 51 52 src = fetchFromGitHub { 53 owner = "sylabs"; 54 repo = "singularity"; 55 tag = "v${version}"; 56 hash = "sha256-lYYY449agINk1cwRl06gstGhkwQKaeZdLnwT6bW6HY4="; 57 }; 58 59 # Override vendorHash with overrideAttrs. 60 # See https://nixos.org/manual/nixpkgs/unstable/#buildGoModule-vendorHash 61 vendorHash = "sha256-3CEkaG8k6W1/8v8tsVLXdSV68QHUgn5/BEd8qjkW7ik="; 62 63 extraConfigureFlags = [ 64 # Do not build squashfuse from the Git submodule sources, use Nixpkgs provided version 65 "--without-squashfuse" 66 # Disable subid as it requires (unavailable?) libsubid headers: 67 "--without-libsubid" 68 ]; 69 70 extraDescription = " (Sylabs Inc's fork of Singularity, a.k.a. SingularityCE)"; 71 extraMeta.homepage = "https://sylabs.io/"; 72 }) 73 { 74 # Sylabs SingularityCE builders defaults to set the SUID flag 75 # on UNIX-like platforms, 76 # and only have --without-suid but not --with-suid. 77 defaultToSuid = true; 78 79 sourceFilesWithDefaultPaths = { 80 "cmd/internal/cli/actions.go" = [ "/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin" ]; 81 "e2e/env/env.go" = [ "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ]; 82 "internal/pkg/util/env/clean.go" = [ 83 "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" 84 ]; 85 }; 86 }; 87 88 genOverridenNixos = 89 package: packageName: 90 (nixos { 91 programs.singularity = { 92 enable = true; 93 inherit package; 94 }; 95 }).config.programs.singularity.packageOverriden.overrideAttrs 96 (oldAttrs: { 97 meta = oldAttrs.meta // { 98 description = ""; 99 longDescription = '' 100 This package produces identical store derivations to `pkgs.${packageName}` 101 overriden and installed by the NixOS module `programs.singularity` 102 with default configuration. 103 104 This is for binary substitutes only. Use pkgs.${packageName} instead. 105 ''; 106 }; 107 }); 108in 109{ 110 inherit apptainer singularity; 111 112 apptainer-overriden-nixos = genOverridenNixos apptainer "apptainer"; 113 singularity-overriden-nixos = genOverridenNixos singularity "singularity"; 114}