Unverified Commit 656c68d6 authored by Lin Jian's avatar Lin Jian
Browse files

emacsPackages: add more override helpers

- addPackageRequires
- addPackageRequiresIfOlder
- addPackageRequiresWhen
- fixRequireHelmCore
- ignoreCompilationError
- ignoreCompilationErrorIfOlder
- ignoreCompilationErrorWhen
- mkHomeIfOlder
- mkHomeWhen
parent 466727b8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ formats commits for you.

self: let

  inherit (import ./lib-override-helper.nix pkgs)
  inherit (import ./lib-override-helper.nix pkgs lib)
    markBroken
    ;

+1 −1
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ formats commits for you.

self: let

  inherit (import ./lib-override-helper.nix pkgs)
  inherit (import ./lib-override-helper.nix pkgs lib)
    markBroken
    ;

+70 −10
Original line number Diff line number Diff line
pkgs:
pkgs: lib:

rec {
  addPackageRequires =
    pkg: packageRequires: addPackageRequiresWhen pkg packageRequires (finalAttrs: previousAttrs: true);

  addPackageRequiresIfOlder =
    pkg: packageRequires: version:
    addPackageRequiresWhen pkg packageRequires (
      finalAttrs: previousAttrs: lib.versionOlder finalAttrs.version version
    );

  addPackageRequiresWhen =
    pkg: packageRequires: predicate:
    pkg.overrideAttrs (
      finalAttrs: previousAttrs: {
        packageRequires =
          if predicate finalAttrs previousAttrs then
            previousAttrs.packageRequires or [ ] ++ packageRequires
          else
            previousAttrs.packageRequires or null;
      }
    );

  buildWithGit =
    pkg:
    pkg.overrideAttrs (previousAttrs: {
@@ -18,6 +39,34 @@ rec {

  fix-rtags = pkg: dontConfigure (externalSrc pkg pkgs.rtags);

  fixRequireHelmCore =
    pkg:
    pkg.overrideAttrs (previousAttrs: {
      postPatch =
        previousAttrs.postPatch or ""
        + "\n"
        + ''
          substituteInPlace $ename.el \
            --replace-fail "(require 'helm)" "(require 'helm-core)"
        '';
    });

  ignoreCompilationError = pkg: ignoreCompilationErrorWhen pkg (finalAttrs: previousAttrs: true);

  ignoreCompilationErrorIfOlder =
    pkg: version:
    ignoreCompilationErrorWhen pkg (
      finalAttrs: previousAttrs: lib.versionOlder finalAttrs.version version
    );

  ignoreCompilationErrorWhen =
    pkg: predicate:
    pkg.overrideAttrs (
      finalAttrs: previousAttrs: {
        ignoreCompilationError = predicate finalAttrs previousAttrs;
      }
    );

  markBroken =
    pkg:
    pkg.overrideAttrs (previousAttrs: {
@@ -26,13 +75,24 @@ rec {
      };
    });

  mkHome =
    pkg:
    pkg.overrideAttrs (previousAttrs: {
  mkHome = pkg: mkHomeWhen pkg (finalAttrs: previousAttrs: true);

  mkHomeIfOlder =
    pkg: version:
    mkHomeWhen pkg (finalAttrs: previousAttrs: lib.versionOlder finalAttrs.version version);

  mkHomeWhen =
    pkg: predicate:
    pkg.overrideAttrs (
      finalAttrs: previousAttrs: {
        preInstall =
          if predicate finalAttrs previousAttrs then
            ''
              HOME=$(mktemp -d)
            ''
        + previousAttrs.preInstall or "";
    });
            + previousAttrs.preInstall or ""
          else
            previousAttrs.preInstall or null;
      }
    );
}
+1 −1
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ in

{ lib, pkgs }: variant: self:
let
  inherit (import ./lib-override-helper.nix pkgs)
  inherit (import ./lib-override-helper.nix pkgs lib)
    buildWithGit
    dontConfigure
    externalSrc