2025-01-12 23:37:32 +02:00
|
|
|
{
|
|
|
|
|
inputs = {
|
|
|
|
|
nixpkgs = {
|
|
|
|
|
url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
outputs = { self, nixpkgs }:
|
|
|
|
|
let
|
|
|
|
|
supportedSystems = [
|
|
|
|
|
"x86_64-linux"
|
|
|
|
|
"aarch64-linux"
|
2025-01-13 00:28:39 +02:00
|
|
|
"x86_64-darwin"
|
|
|
|
|
"aarch64-darwin"
|
2025-01-12 23:37:32 +02:00
|
|
|
];
|
|
|
|
|
|
|
|
|
|
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
|
|
|
|
|
|
2025-05-01 05:33:04 -04:00
|
|
|
mkRamaLama = pkgs: with pkgs;
|
2025-01-12 23:37:32 +02:00
|
|
|
callPackage
|
|
|
|
|
(
|
|
|
|
|
{ ramalamaOverrides ? { }
|
|
|
|
|
, llamaCppOverrides ? { }
|
|
|
|
|
}:
|
|
|
|
|
python3Packages.buildPythonPackage ({
|
|
|
|
|
name = "ramalama";
|
|
|
|
|
src = ./.;
|
2025-11-07 18:02:02 +01:00
|
|
|
pyproject = true;
|
|
|
|
|
build-system = with python3Packages; [ setuptools ];
|
|
|
|
|
dependencies = with python3Packages; [
|
|
|
|
|
argcomplete
|
|
|
|
|
pyyaml
|
|
|
|
|
jsonschema
|
|
|
|
|
jinja2
|
|
|
|
|
(llama-cpp.override llamaCppOverrides)
|
|
|
|
|
];
|
2025-03-21 21:52:45 +01:00
|
|
|
nativeBuildInputs =
|
|
|
|
|
(with pkgs; [ codespell shellcheck isort bats jq apacheHttpd ]) ++
|
|
|
|
|
(with pkgs.python3Packages; [ flake8 black pytest ]);
|
2025-01-12 23:37:32 +02:00
|
|
|
} // ramalamaOverrides)
|
|
|
|
|
)
|
|
|
|
|
{ llamaCppOverrides.vulkanSupport = true; }
|
|
|
|
|
;
|
|
|
|
|
|
|
|
|
|
ramalama = forAllSystems (system:
|
|
|
|
|
let
|
|
|
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
2025-05-01 05:33:04 -04:00
|
|
|
package = mkRamaLama pkgs;
|
2025-01-12 23:37:32 +02:00
|
|
|
in {
|
|
|
|
|
inherit package;
|
|
|
|
|
app = {
|
|
|
|
|
type = "app";
|
|
|
|
|
program = toString (pkgs.writeShellScript "ramalama" "${package}/bin/ramalama \"$@\"");
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
in {
|
|
|
|
|
packages = forAllSystems (system: {
|
|
|
|
|
ramalama = ramalama.${system}.package;
|
|
|
|
|
default = ramalama.${system}.package;
|
|
|
|
|
});
|
|
|
|
|
|
2025-11-07 18:02:02 +01:00
|
|
|
apps = forAllSystems (system: {
|
2025-01-12 23:37:32 +02:00
|
|
|
ramalama = ramalama.${system}.app;
|
|
|
|
|
default = ramalama.${system}.app;
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
}
|