diff --git a/overlays.nix b/overlays.nix index 1b2820b..9d970b2 100644 --- a/overlays.nix +++ b/overlays.nix @@ -6,19 +6,20 @@ myLib, ... }: -with builtins; with lib; let cfg = config.aviallon.overlays; - pkgNames = pkgs: forEach pkgs (p: "${getName p}-${p.version}"); -in -{ +in { imports = [ (mkRenamedOptionModule [ "aviallon" "overlays" "optimizations" ] [ "aviallon" "optimizations" "enable" ] ) + (mkRemovedOptionModule + [ "aviallon" "overlays" "traceCallPackage" ] + "removed as it was debug only and not properly tested" + ) ]; options.aviallon.overlays = { @@ -28,179 +29,40 @@ in description = "Wether to enable system-wide overlays or not"; type = types.bool; }; - traceCallPackage = mkEnableOption "printing package names each time callPackage is evaluated"; }; + config = mkIf cfg.enable { nix.nixPath = # Append our nixpkgs-overlays. [ "nixpkgs-overlays=/etc/nixos/overlays-compat/" ]; - nixpkgs.overlays = - [ ] - ++ optional cfg.traceCallPackage ( - self: super: { - callPackage = - path: overrides: - let - _pkg = super.callPackage path overrides; - _name = _pkg.name or _pkg.pname or ""; - in - trace "callPackage ${_name}" _pkg; - } - ) - ++ [ - (self: super: { - htop = super.htop.overrideAttrs (old: { - configureFlags = old.configureFlags ++ [ - "--enable-affinity" - "--enable-delayacct" - "--enable-capabilities" - ]; + nixpkgs.overlays = [ + (final: prev: { + htop = prev.htop.overrideAttrs (old: { + configureFlags = + (filter (c: c != "--enable-affinity" ) old.configureFlags) + ++ [ "--enable-hwloc" ]; nativeBuildInputs = old.nativeBuildInputs - ++ (with super; [ - pkg-config - ]); + ++ [ final.pkg-config (getDev final.hwloc) ]; + buildInputs = old.buildInputs - ++ (with super; [ - libcap - libunwind - libnl - ]); + ++ [ (getLib final.hwloc) ]; }); - ark = super.ark.override { + + ark = prev.ark.override { unfreeEnableUnrar = true; }; - }) # (final: prev: { # # linux-manual requires scripts/split-man.pl from the kernel source, but - # # neither xanmod 6.19.7 nor vanilla 6.18.x ship it yet. Mark broken so - # # the build doesn't fail; man-pages and man-pages-posix still build fine. - # linux-manual = prev.linux-manual.overrideAttrs (_: { - # meta = (prev.linux-manual.meta or { }) // { - # broken = true; - # }; - # }); + # # neither xanmod 6.19.7 nor vanilla 6.18.x ship it yet. + # linux-manual = prev.linux-manual.override { kernel = config.boot.kernelPackages.kernel; } # }) - - (final: prev: { - lutris-fhs = ( - prev.buildFHSUserEnv { - name = "lutris"; - targetPkgs = - pkgs: - (with pkgs; [ - glibc - bashInteractive - - python3Full - - lutris - gamescope - wineWow64Packages.waylandFull - flatpak - ]); - - # symlink shared assets, including icons and desktop entries - extraInstallCommands = '' - ln -s "${pkgs.lutris}/share" "$out/" - ''; - - runScript = "/usr/bin/lutris"; - } - ); - }) - - ( - final: prev: - let - pycharm-common = - pkg: - let - myIsDerivation = x: !(myLib.derivations.isBroken x); - interpreters = pkgs: filter (x: myIsDerivation x) (attrValues pkgs.pythonInterpreters); - in - prev.buildFHSUserEnv rec { - name = pkg.pname; - targetPkgs = - pkgs: - ( - with pkgs; - [ - glibc - bashInteractive - zlib - - python3Full - - pkg - ] - ++ trace "Using the following interpreters: ${toString (pkgNames (interpreters pkgs))}" ( - interpreters pkgs - ) - ); - - # symlink shared assets, including icons and desktop entries - extraInstallCommands = '' - ln -s "${pkg}/share" "$out/" - ''; - - runScript = "/usr/bin/${pkg.pname}"; - }; - in - { - jetbrains = prev.jetbrains // { - pycharm-community-fhs = pycharm-common prev.jetbrains.pycharm-community; - pycharm-professional-fhs = pycharm-common prev.jetbrains.pycharm-professional; - - clion-fhs = - let - compilers = - pkgs: - with pkgs; - with llvmPackages_17; - [ - (setPrio (-9) gcc13) - (hiPrio clang) - clang-unwrapped - libcxx - ]; - in - prev.buildFHSUserEnv rec { - name = "clion"; - targetPkgs = - pkgs: - ( - with pkgs; - [ - jetbrains.clion - (hiPrio cmake) - (hiPrio ninja) - gnumake - extra-cmake-modules - ] - ++ trace "Using the following compilers: ${toString (pkgNames (compilers pkgs))}" (compilers pkgs) - ); - # symlink shared assets, including icons and desktop entries - extraInstallCommands = '' - ln -s "${prev.jetbrains.clion}/share" "$out/" - ''; - extraOutputsToInstall = [ - "include" - "dev" - "doc" - ]; - - runScript = "/usr/bin/clion"; - }; - }; - } - ) - - ]; + ]; + aviallon.programs.allowUnfreeList = [ "unrar" "ark"