install the bundled package derivations by default

This commit is contained in:
László Vaskó
2019-10-25 18:02:58 +02:00
parent b30b651706
commit 2dca32ed63
3 changed files with 114 additions and 20 deletions

View File

@ -1,7 +1,27 @@
{ # The files would be going to ~/.config/doom (~/.doom.d) { # The files would be going to ~/.config/doom (~/.doom.d)
doomPrivateDir doomPrivateDir
# Package set to install emacs and dependent packages from /* Package set to install emacs and dependent packages from
Only used to get emacs package, if `bundledPackages` is set
*/
, emacsPackages , emacsPackages
/* Use bundled revision of github.com/nix-community/emacs-overlay
as `emacsPackages`
*/
, bundledPackages ? true
/* Override dependency versions
Hadful for testing out updated dependencies without publishing
a new version of them.
Type: dependencyOverrides :: attrset -> either path derivation
Example:
dependencyOverrides = {
"emacs-overlay" = fetchFromGitHub { owner = /* ...*\/; };
};
*/
, dependencyOverrides ? { }
, lib , lib
, pkgs , pkgs
, stdenv , stdenv
@ -14,6 +34,12 @@
, writeTextDir }: , writeTextDir }:
let let
lock = pkgs.callPackage
"${builtins.fetchTarball https://github.com/vlaci/nix-lock/archive/develop.tar.gz}/lock.nix" {
path = ./derivations.lock;
overrides = dependencyOverrides;
};
# Packages we need to get the default doom configuration run # Packages we need to get the default doom configuration run
overrides = self: super: { overrides = self: super: {
evil-escape = super.evil-escape.overrideAttrs (esuper: { evil-escape = super.evil-escape.overrideAttrs (esuper: {
@ -24,24 +50,14 @@ let
version = "1"; version = "1";
recipe = null; recipe = null;
ename = pname; ename = pname;
src = fetchFromGitHub { src = lock.get pname;
owner = "TobiasZawada";
repo = "org-yt";
rev = "40cc1ac76d741055cbefa13860d9f070a7ade001";
sha256 = "0jsm3azb7lwikvc53z4p91av8qvda9s15wij153spkgjp83kld3p";
};
}; };
}; };
# Stage 1: prepare source for byte-compilation # Stage 1: prepare source for byte-compilation
doomSrc = stdenv.mkDerivation { doomSrc = stdenv.mkDerivation {
name = "doom-src"; name = "doom-src";
src = fetchFromGitHub { src = lock.get "doom-emacs";
owner = "hlissner";
repo = "doom-emacs";
rev = "eb2a67d05ff4b178fedabd36ce448191cce8d6bb";
sha256 = "05nhsn4q2bbs8m7x88ci2k7cq7hc7ql6xkyv0hmz762ip8g1jvlp";
};
phases = ["unpackPhase" "patchPhase" "installPhase"]; phases = ["unpackPhase" "patchPhase" "installPhase"];
patches = [ patches = [
(substituteAll { (substituteAll {
@ -55,16 +71,20 @@ let
''; '';
}; };
# Bundled version of `emacs-overlay`
emacs-overlay = import (lock.get "emacs-overlay") pkgs pkgs;
# Stage 2:: install dependencies and byte-compile prepared source # Stage 2:: install dependencies and byte-compile prepared source
doomLocal = doomLocal =
let let
straight-env = pkgs.callPackage (fetchFromGitHub { straight-env = pkgs.callPackage (lock.get "nix-straight.el") {
owner = "vlaci"; emacsPackages =
repo = "nix-straight.el"; if bundledPackages then
rev = "v1.0"; let
sha256 = "038dss49bfvpj15psh5pr9jyavivninl0rzga9cn8qyc4g2cj5i0"; epkgs = emacs-overlay.emacsPackagesNgFor emacsPackages.emacs;
}) { in epkgs.overrideScope' overrides
emacsPackages = emacsPackages.overrideScope' overrides; else
emacsPackages.overrideScope' overrides;
emacsLoadFiles = [ ./advice.el ]; emacsLoadFiles = [ ./advice.el ];
emacsArgs = [ emacsArgs = [
"install" "install"

20
derivations.json Normal file
View File

@ -0,0 +1,20 @@
{
"doom-emacs": {
"repo": "doom-emacs",
"owner": "hlissner",
"rev": "develop"
},
"nix-straight.el": {
"owner": "vlaci",
"repo": "nix-straight.el",
"rev": "v1.0"
},
"org-yt": {
"owner": "TobiasZawada",
"repo": "org-yt"
},
"emacs-overlay": {
"owner": "nix-community",
"repo": "emacs-overlay"
}
}

54
derivations.lock Normal file
View File

@ -0,0 +1,54 @@
{
"doom-emacs": {
"fetcher": "fetchFromGitHub",
"args": {
"owner": "hlissner",
"repo": "doom-emacs",
"rev": "019308a93c639847dccac75149d407b5a06f6c67",
"sha256": "0wqi7m6j1kcjxid651r0p08hswx8yxpshg61358n0jbzl3as1hrk"
},
"meta": {
"updated": "2019-10-25T22:28:24+00:00",
"rev": "019308a93c639847dccac75149d407b5a06f6c67"
}
},
"nix-straight.el": {
"fetcher": "fetchFromGitHub",
"args": {
"owner": "vlaci",
"repo": "nix-straight.el",
"rev": "6182914aefea06ef514cd3f3f7f9f67db45940db",
"sha256": "038dss49bfvpj15psh5pr9jyavivninl0rzga9cn8qyc4g2cj5i0"
},
"meta": {
"updated": "2019-10-25T22:28:25+00:00",
"rev": "6182914aefea06ef514cd3f3f7f9f67db45940db"
}
},
"org-yt": {
"fetcher": "fetchFromGitHub",
"args": {
"owner": "TobiasZawada",
"repo": "org-yt",
"rev": "40cc1ac76d741055cbefa13860d9f070a7ade001",
"sha256": "0jsm3azb7lwikvc53z4p91av8qvda9s15wij153spkgjp83kld3p"
},
"meta": {
"updated": "2019-10-25T22:28:27+00:00",
"rev": "40cc1ac76d741055cbefa13860d9f070a7ade001"
}
},
"emacs-overlay": {
"fetcher": "fetchFromGitHub",
"args": {
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "daf9002714e9adfa415a385d939539524482142d",
"sha256": "1w3zyk4847h1avd50cs1r7apw37bsyslv17vjkdk4h0r4gqz9cvs"
},
"meta": {
"updated": "2019-10-25T22:28:28+00:00",
"rev": "daf9002714e9adfa415a385d939539524482142d"
}
}
}