diff --git a/pkgs/tools/virtualization/extra-container/default.nix b/pkgs/tools/virtualization/extra-container/default.nix new file mode 100644 index 000000000000..ad0601a5243a --- /dev/null +++ b/pkgs/tools/virtualization/extra-container/default.nix @@ -0,0 +1,37 @@ +{ stdenv, lib, nixos-container, openssh, glibcLocales, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "extra-container"; + version = "0.8"; + + src = fetchFromGitHub { + owner = "erikarvstedt"; + repo = pname; + rev = version; + hash = "sha256-/AetqDPkz32JMdjbSdzZCBVmGbvzjeAb8Wv82iTgHFE="; + }; + + buildCommand = '' + install -D $src/extra-container $out/bin/extra-container + patchShebangs $out/bin + share=$out/share/extra-container + install $src/eval-config.nix -Dt $share + + # Use existing PATH for systemctl and machinectl + scriptPath="export PATH=${lib.makeBinPath [ nixos-container openssh ]}:\$PATH" + + sed -i \ + -e "s|evalConfig=.*|evalConfig=$share/eval-config.nix|" \ + -e "s|LOCALE_ARCHIVE=.*|LOCALE_ARCHIVE=${glibcLocales}/lib/locale/locale-archive|" \ + -e "2i$scriptPath" \ + $out/bin/extra-container + ''; + + meta = with lib; { + description = "Run declarative containers without full system rebuilds"; + homepage = https://github.com/erikarvstedt/extra-container; + license = licenses.mit; + platforms = platforms.linux; + maintainers = [ maintainers.earvstedt ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index fde403f4af89..155199b0654b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -31922,6 +31922,8 @@ with pkgs; nixos-rebuild = callPackage ../os-specific/linux/nixos-rebuild { }; + extra-container = callPackage ../tools/virtualization/extra-container { }; + norwester-font = callPackage ../data/fonts/norwester {}; nut = callPackage ../applications/misc/nut { };