{
  config,
  lib,
  pkgs,
  ...
}:
with lib;
{

  options.components.virtualisation.podman.enable = lib.mkOption {
    type = lib.types.bool;
    default = config.components.virtualisation.enable;
  };

  config = mkMerge [
    (mkIf config.components.virtualisation.podman.enable {

      virtualisation.podman.enable = true;

      # make sure /var/lib/containers/storage is a zfs dataset
      virtualisation.podman.extraPackages = [ pkgs.zfs ];

    })
    (mkIf (config.components.virtualisation.podman.enable && (!config.virtualisation.docker.enable)) {
      virtualisation.podman.dockerCompat = true;
      virtualisation.podman.dockerSocket.enable = true;
    })

  ];

}