Merge pull request #102354 from erikarvstedt/extra-container

extra-container: init at 0.8

authored by Lassulus and committed by GitHub 1b94d11c b7bd131f

+57
+1
nixos/modules/module-list.nix
··· 135 ./programs/droidcam.nix 136 ./programs/environment.nix 137 ./programs/evince.nix 138 ./programs/feedbackd.nix 139 ./programs/file-roller.nix 140 ./programs/firejail.nix
··· 135 ./programs/droidcam.nix 136 ./programs/environment.nix 137 ./programs/evince.nix 138 + ./programs/extra-container.nix 139 ./programs/feedbackd.nix 140 ./programs/file-roller.nix 141 ./programs/firejail.nix
+17
nixos/modules/programs/extra-container.nix
···
··· 1 + { config, pkgs, lib, ... }: 2 + 3 + with lib; 4 + let 5 + cfg = config.programs.extra-container; 6 + in { 7 + options = { 8 + programs.extra-container.enable = mkEnableOption '' 9 + extra-container, a tool for running declarative NixOS containers 10 + without host system rebuilds 11 + ''; 12 + }; 13 + config = mkIf cfg.enable { 14 + environment.systemPackages = [ pkgs.extra-container ]; 15 + boot.extraSystemdUnitPaths = [ "/etc/systemd-mutable/system" ]; 16 + }; 17 + }
+37
pkgs/tools/virtualization/extra-container/default.nix
···
··· 1 + { stdenv, lib, nixos-container, openssh, glibcLocales, fetchFromGitHub }: 2 + 3 + stdenv.mkDerivation rec { 4 + pname = "extra-container"; 5 + version = "0.8"; 6 + 7 + src = fetchFromGitHub { 8 + owner = "erikarvstedt"; 9 + repo = pname; 10 + rev = version; 11 + hash = "sha256-/AetqDPkz32JMdjbSdzZCBVmGbvzjeAb8Wv82iTgHFE="; 12 + }; 13 + 14 + buildCommand = '' 15 + install -D $src/extra-container $out/bin/extra-container 16 + patchShebangs $out/bin 17 + share=$out/share/extra-container 18 + install $src/eval-config.nix -Dt $share 19 + 20 + # Use existing PATH for systemctl and machinectl 21 + scriptPath="export PATH=${lib.makeBinPath [ nixos-container openssh ]}:\$PATH" 22 + 23 + sed -i \ 24 + -e "s|evalConfig=.*|evalConfig=$share/eval-config.nix|" \ 25 + -e "s|LOCALE_ARCHIVE=.*|LOCALE_ARCHIVE=${glibcLocales}/lib/locale/locale-archive|" \ 26 + -e "2i$scriptPath" \ 27 + $out/bin/extra-container 28 + ''; 29 + 30 + meta = with lib; { 31 + description = "Run declarative containers without full system rebuilds"; 32 + homepage = https://github.com/erikarvstedt/extra-container; 33 + license = licenses.mit; 34 + platforms = platforms.linux; 35 + maintainers = [ maintainers.earvstedt ]; 36 + }; 37 + }
+2
pkgs/top-level/all-packages.nix
··· 31942 31943 nixos-rebuild = callPackage ../os-specific/linux/nixos-rebuild { }; 31944 31945 norwester-font = callPackage ../data/fonts/norwester {}; 31946 31947 nut = callPackage ../applications/misc/nut { };
··· 31942 31943 nixos-rebuild = callPackage ../os-specific/linux/nixos-rebuild { }; 31944 31945 + extra-container = callPackage ../tools/virtualization/extra-container { }; 31946 + 31947 norwester-font = callPackage ../data/fonts/norwester {}; 31948 31949 nut = callPackage ../applications/misc/nut { };