mirror of
https://github.com/Misterio77/Foundry.git
synced 2026-08-24 10:04:09 -05:00
182 lines
6.5 KiB
Nix
182 lines
6.5 KiB
Nix
{
|
|
outputs,
|
|
inputs,
|
|
}: let
|
|
addPatches = pkg: patches:
|
|
pkg.overrideAttrs (oldAttrs: {
|
|
patches = (oldAttrs.patches or []) ++ patches;
|
|
});
|
|
in {
|
|
# For every flake input, aliases 'pkgs.inputs.${flake}' to
|
|
# 'inputs.${flake}.packages.${pkgs.system}' or
|
|
# 'inputs.${flake}.legacyPackages.${pkgs.system}'
|
|
flake-inputs = final: _: {
|
|
inputs =
|
|
builtins.mapAttrs (
|
|
_: flake: let
|
|
legacyPackages = (flake.legacyPackages or {}).${final.system} or {};
|
|
packages = (flake.packages or {}).${final.system} or {};
|
|
in
|
|
if legacyPackages != {}
|
|
then legacyPackages
|
|
else packages
|
|
)
|
|
inputs;
|
|
};
|
|
|
|
# Adds my custom packages
|
|
additions = final: prev:
|
|
import ../pkgs {pkgs = final;}
|
|
// {
|
|
formats = (prev.formats or {}) // import ../pkgs/formats {pkgs = final;};
|
|
roundcubePlugins = (prev.roundcubePlugins or {}) // import ../pkgs/roundcube-plugins {pkgs = final;};
|
|
};
|
|
|
|
# Modifies existing packages
|
|
modifications = final: prev: {
|
|
qutebrowser = prev.qutebrowser.overrideAttrs (oldAttrs: {
|
|
preFixup =
|
|
oldAttrs.preFixup
|
|
+
|
|
# Fix for https://github.com/NixOS/nixpkgs/issues/168484
|
|
(let
|
|
schemaPath = package: "${package}/share/gsettings-schemas/${package.name}";
|
|
in ''
|
|
makeWrapperArgs+=(
|
|
--prefix GIO_EXTRA_MODULES : "${final.lib.getLib final.dconf}/lib/gio/modules"
|
|
--prefix XDG_DATA_DIRS : ${schemaPath final.gsettings-desktop-schemas}
|
|
--prefix XDG_DATA_DIRS : ${schemaPath final.gtk3}
|
|
)
|
|
'');
|
|
patches =
|
|
(oldAttrs.patches or [])
|
|
++ [
|
|
# Repaint tabs when colorscheme changes
|
|
./qutebrowser-refresh-tab-colorscheme.patch
|
|
];
|
|
});
|
|
|
|
helix-unwrapped = addPatches prev.helix-unwrapped [
|
|
(final.fetchpatch {
|
|
url = "https://github.com/helix-editor/helix/commit/52bf5e94898bb10de22a4142f08470993151e5c8.diff";
|
|
hash = "sha256-A84GYJzchfi9ncfmH0FVWwef8hYOKEQ7alLqHr7vPtY=";
|
|
})
|
|
];
|
|
|
|
# Avoid refreshing the entire movie library when the real-time monitor sees
|
|
# a new sidecar file in an existing movie directory.
|
|
# https://github.com/jellyfin/jellyfin/pull/16228
|
|
jellyfin = addPatches prev.jellyfin [
|
|
(final.fetchpatch {
|
|
url = "https://github.com/jellyfin/jellyfin/commit/6dd862fc8465c7352a77bab0bf8f4386d4059f9b.diff";
|
|
hash = "sha256-8quKcz7VhqQGkd8ZTSqzhBKdAE/4Lc2avFFI/rIuUNc=";
|
|
})
|
|
(final.fetchpatch {
|
|
url = "https://github.com/jellyfin/jellyfin/commit/9605e182dbf0272d23891087111d38dfeee9a654.diff";
|
|
hash = "sha256-s9JBIWHwgLyralGKHUMWV5iTmdR1IIopCW7eI5HSY9Q=";
|
|
})
|
|
];
|
|
|
|
# Make the llama.cpp router's HF-cache scan opt-in (LLAMA_ROUTER_SCAN_CACHE)
|
|
# so --models-preset is the single source of truth and models can be named
|
|
# freely without untuned repo:tag twins. Patch the base so the -vulkan and
|
|
# -rocm variants (llama-cpp.override) inherit it.
|
|
llama-cpp = addPatches prev.llama-cpp [./llama-cpp-optional-cache-scan.patch];
|
|
|
|
wl-clipboard = addPatches prev.wl-clipboard [./wl-clipboard-secrets.diff];
|
|
|
|
pass = addPatches prev.pass [./pass-wlclipboard-secret.diff];
|
|
|
|
vdirsyncer = addPatches prev.vdirsyncer [./vdirsyncer-fixed-oauth-token.patch];
|
|
|
|
todoman = addPatches prev.todoman [
|
|
# https://github.com/pimutils/todoman/pull/594
|
|
./todoman-subtasks.patch
|
|
./todoman-disable-uid-hostname-suffix.diff
|
|
];
|
|
|
|
# https://github.com/ValveSoftware/gamescope/issues/1622
|
|
gamescope = prev.gamescope.overrideAttrs (_: {
|
|
NIX_CFLAGS_COMPILE = ["-fno-fast-math"];
|
|
});
|
|
|
|
# Force $XDG_CONFIG_DIR/hdos.
|
|
hdos = prev.hdos.overrideAttrs (_: let
|
|
inherit (final) lib openjdk11 libGL;
|
|
in {
|
|
installPhase = ''
|
|
runHook preInstall
|
|
makeWrapper ${lib.getExe openjdk11} $out/bin/hdos \
|
|
--run "export XDG_CONFIG_DIR=\"\''${XDG_CONFIG_DIR:-\$HOME/.config}\"" \
|
|
--run "export HDOS_DIR=\"\$XDG_CONFIG_DIR/hdos\"" \
|
|
--run "export HOME=\"\$XDG_CONFIG_DIR\"" \
|
|
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [libGL]}" \
|
|
--add-flags "-Dapp.user.home=\"\$HDOS_DIR\"" \
|
|
--add-flags "-Duser.home=\"\$HDOS_DIR\"" \
|
|
--add-flags "-jar $src"
|
|
runHook postInstall
|
|
'';
|
|
});
|
|
|
|
automatic-timezoned = prev.automatic-timezoned.overrideAttrs (old: {
|
|
patches = [./automatic-timezoned-async-error-handling.patch];
|
|
cargoDeps = old.cargoDeps.overrideAttrs (old: {
|
|
vendorStaging = old.vendorStaging.overrideAttrs {
|
|
patches = [./automatic-timezoned-async-error-handling.patch];
|
|
outputHash = "sha256-KWDME7KRvlmW5XbwVMXc90BXBC48CCyzPh5gy1tKNXM=";
|
|
};
|
|
});
|
|
});
|
|
|
|
pi-coding-agent = prev.pi-coding-agent.overrideAttrs (finalAttrs: oldAttrs: {
|
|
version = "0.80.6";
|
|
src = final.fetchFromGitHub {
|
|
owner = "earendil-works";
|
|
repo = "pi";
|
|
tag = "v${finalAttrs.version}";
|
|
hash = "sha256-e/wcHruEcBAHDF5tKvwew7LXjVp0eraHh2k+QaL2sCA=";
|
|
};
|
|
npmDeps = final.fetchNpmDeps {
|
|
name = "${finalAttrs.pname}-${finalAttrs.version}-npm-deps";
|
|
inherit (finalAttrs) src;
|
|
hash = "sha256-xXEOR0epZcfbXayYGyJdBiFVliamBexqA+1Sd7wlGhU=";
|
|
};
|
|
patches = (oldAttrs.patches or []) ++ [./pi-cli-model-scope.patch];
|
|
});
|
|
|
|
buildPiPackage = let
|
|
inherit (final) lib buildNpmPackage jq stdenvNoCC;
|
|
fakeSha512 = lib.convertHash {
|
|
hash = lib.fakeSha512;
|
|
toHashFormat = "sri";
|
|
hashAlgo = "sha512";
|
|
};
|
|
commonDefaults = {
|
|
pname = "pi-extension";
|
|
version = "unstable";
|
|
installPhase = ''
|
|
mkdir -p $out
|
|
cp -r . $out/
|
|
'';
|
|
};
|
|
npmDefaults =
|
|
commonDefaults
|
|
// {
|
|
# Pi dev deps lack integrity, put fake hash to make them work
|
|
# https://github.com/earendil-works/pi/issues/5653
|
|
prePatch = ''
|
|
${lib.getExe jq} 'walk(if type == "object" and has("resolved") and (has("integrity") | not) then . + {"integrity": "${fakeSha512}"} else . end)' package-lock.json >> fixed-package-lock.json
|
|
mv fixed-package-lock.json package-lock.json
|
|
'';
|
|
npmInstallFlags = ["--omit=dev"];
|
|
npmDepsFetcherVersion = 2;
|
|
dontNpmBuild = true;
|
|
};
|
|
in
|
|
args:
|
|
if args.dontNpmInstall or false
|
|
then stdenvNoCC.mkDerivation (commonDefaults // args)
|
|
else buildNpmPackage (npmDefaults // args);
|
|
};
|
|
}
|