nixos/utils/overlays/packages.nix

79 lines
3.7 KiB
Nix

self: super: {
bento = (super.callPackage ../pkgs/bento { });
ykfde = (super.callPackage ../pkgs/ykfde { });
creality-print = (super.callPackage ../pkgs/creality-print.nix { });
openaudible = (super.callPackage ../pkgs/openaudible.nix { });
openmanus = (super.callPackage ../pkgs/openmanus.nix { });
ai-mailer = self.callPackage ../pkgs/ai-mailer.nix { };
mautrix-mattermost = self.callPackage ../pkgs/mautrix-mattermost { };
claude-code = self.callPackage ../pkgs/claude-code { claude-code = super.claude-code; };
# Python packages
python3 = super.python3.override {
packageOverrides = pself: psuper: {
aia-chaser = pself.callPackage ../pkgs/aia-chaser { };
mini-racer = pself.callPackage ../pkgs/mini-racer.nix { };
};
};
python3Packages = self.python3.pkgs;
pyload-ng = self.callPackage ../pkgs/pyload-ng { pyload-ng = super.pyload-ng; };
# TODO: Remove this override once nixpkgs includes invidious >= 2.20250204 with PR #5614 fix
# Fix for 400 errors on channel lists - https://github.com/iv-org/invidious/pull/5614
invidious =
let
version = "unstable-2026-02-04";
commit = "ecbc21b";
date = "2026.02.04";
src = super.fetchFromGitHub {
owner = "iv-org";
repo = "invidious";
rev = "ecbc21b0678eac4a0c8f745de5cc78eef4841221";
fetchSubmodules = true;
hash = "sha256-S6/d1Fzv3CrZHBW3aE21OoPUeQwEFFMwkeJyUKyTcGQ=";
};
# Fetch videojs dependencies - reuse existing hash as dependencies are unlikely to change
videojs = super.stdenvNoCC.mkDerivation {
name = "videojs";
inherit src;
builder = "${super.path}/pkgs/by-name/in/invidious/videojs.sh";
nativeBuildInputs = with super; [ cacert crystal_1_16 openssl pkg-config ];
outputHashAlgo = "sha256";
outputHashMode = "recursive";
outputHash = "sha256-jED3zsDkPN8i6GhBBJwnsHujbuwlHdsVpVqa1/pzSH4=";
};
in
super.invidious.overrideAttrs (oldAttrs: {
inherit version src;
postPatch = let
branchTemplate = ''{{ "#{`git branch | sed -n '/* /s///p'`.strip}" }}'';
commitTemplate = ''{{ "#{`git rev-list HEAD --max-count=1 --abbrev-commit`.strip}" }}'';
versionTemplate = ''{{ "#{`git log -1 --format=%ci | awk '{print $1}' | sed s/-/./g`.strip}" }}'';
tagTemplate = ''{{ "#{`git tag --points-at HEAD`.strip}" }}'';
assetCommitTemplate = ''{{ "#{`git rev-list HEAD --max-count=1 --abbrev-commit -- assets`.strip}" }}'';
in ''
for d in ${videojs}/*; do ln -s "$d" assets/videojs; done
substituteInPlace src/invidious.cr \
--replace-fail ${super.lib.escapeShellArg branchTemplate} '"master"' \
--replace-fail ${super.lib.escapeShellArg commitTemplate} '"${commit}"' \
--replace-fail ${super.lib.escapeShellArg versionTemplate} '"${date}"' \
--replace-fail ${super.lib.escapeShellArg tagTemplate} '""' \
--replace-fail ${super.lib.escapeShellArg assetCommitTemplate} '"${commit}"'
substituteInPlace src/invidious.cr \
--replace-fail 'public_folder "assets"' 'public_folder "${placeholder "out"}/share/invidious/assets"'
substituteInPlace src/invidious/helpers/i18n.cr \
--replace-fail 'File.read("locales/' 'File.read("${placeholder "out"}/share/invidious/locales/'
substituteInPlace src/invidious/database/base.cr \
--replace-fail 'config/sql' '${placeholder "out"}/share/invidious/config/sql'
substituteInPlace src/invidious/user/captcha.cr \
--replace-fail 'Process.run(%(rsvg-convert' 'Process.run(%(${super.lib.getBin super.librsvg}/bin/rsvg-convert'
'';
});
# vscode-insiders = (super.callPackage ../pkgs/vscode-insiders.nix { });
}