Merge pull request #66819 from adisbladis/elpa-org-overrides
emacs-packages: Make elpa & org package sets overrideable
This commit is contained in:
commit
f2c619fae8
@ -30,21 +30,21 @@
|
|||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
};
|
};
|
||||||
}) {};
|
}) {};
|
||||||
ada-mode = callPackage ({ cl-lib ? null
|
ada-mode = callPackage ({ elpaBuild
|
||||||
, elpaBuild
|
|
||||||
, emacs
|
, emacs
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, lib
|
, lib
|
||||||
|
, uniquify-files
|
||||||
, wisi }:
|
, wisi }:
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "ada-mode";
|
pname = "ada-mode";
|
||||||
ename = "ada-mode";
|
ename = "ada-mode";
|
||||||
version = "6.1.1";
|
version = "6.2.1";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/ada-mode-6.1.1.tar";
|
url = "https://elpa.gnu.org/packages/ada-mode-6.2.1.tar";
|
||||||
sha256 = "090zyspc32fmfqwr0qpzi6qclsaarvb5484b0lq0cdyzgjhimdla";
|
sha256 = "0lg2y28qs8ls70d43ikhy5zcwadh5ddfw4k59p7sqb79w0y3lbnq";
|
||||||
};
|
};
|
||||||
packageRequires = [ cl-lib emacs wisi ];
|
packageRequires = [ emacs uniquify-files wisi ];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://elpa.gnu.org/packages/ada-mode.html";
|
homepage = "https://elpa.gnu.org/packages/ada-mode.html";
|
||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
@ -930,10 +930,10 @@
|
|||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "ebdb";
|
pname = "ebdb";
|
||||||
ename = "ebdb";
|
ename = "ebdb";
|
||||||
version = "0.6.10";
|
version = "0.6.11";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/ebdb-0.6.10.tar";
|
url = "https://elpa.gnu.org/packages/ebdb-0.6.11.tar";
|
||||||
sha256 = "0z0q7kcwczvdh0ddd775vv233j74sjlllv8pjm446bmy9cy6pg8j";
|
sha256 = "1ljcp4vy8z5xbcrlf33xgi63a2px4fhx6928qhwr7sy7jwil2s6n";
|
||||||
};
|
};
|
||||||
packageRequires = [ cl-lib emacs seq ];
|
packageRequires = [ cl-lib emacs seq ];
|
||||||
meta = {
|
meta = {
|
||||||
@ -960,10 +960,10 @@
|
|||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "ebdb-i18n-chn";
|
pname = "ebdb-i18n-chn";
|
||||||
ename = "ebdb-i18n-chn";
|
ename = "ebdb-i18n-chn";
|
||||||
version = "1.2";
|
version = "1.3";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/ebdb-i18n-chn-1.2.el";
|
url = "https://elpa.gnu.org/packages/ebdb-i18n-chn-1.3.el";
|
||||||
sha256 = "1qgrlk625mhfd6n1mc0kqfzbisnb61kx3vrrl3bzlz4viq3kcc10";
|
sha256 = "1w7xgagscyjxrw4xl8bz6wf7skvdvk5qdcp5p7kxl4r9nhjffj20";
|
||||||
};
|
};
|
||||||
packageRequires = [ ebdb pyim ];
|
packageRequires = [ ebdb pyim ];
|
||||||
meta = {
|
meta = {
|
||||||
@ -1297,10 +1297,10 @@
|
|||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "gited";
|
pname = "gited";
|
||||||
ename = "gited";
|
ename = "gited";
|
||||||
version = "0.5.3";
|
version = "0.5.4";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/gited-0.5.3.tar";
|
url = "https://elpa.gnu.org/packages/gited-0.5.4.tar";
|
||||||
sha256 = "1bayfclczdzrmay8swszs8lliz5p4nnmjzzz2gh68rc16isjgh2z";
|
sha256 = "07ckknggkqd733bnps21r46bacgyhd0v9wc0spid22hn0dnrfp12";
|
||||||
};
|
};
|
||||||
packageRequires = [ cl-lib emacs ];
|
packageRequires = [ cl-lib emacs ];
|
||||||
meta = {
|
meta = {
|
||||||
@ -2415,10 +2415,10 @@
|
|||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "phps-mode";
|
pname = "phps-mode";
|
||||||
ename = "phps-mode";
|
ename = "phps-mode";
|
||||||
version = "0.2.3";
|
version = "0.2.4";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/phps-mode-0.2.3.tar";
|
url = "https://elpa.gnu.org/packages/phps-mode-0.2.4.tar";
|
||||||
sha256 = "1wp04d5mi97287qwhic239kkf4r69839gl0hsn5m8qr3dbkhqxy5";
|
sha256 = "0n6gj22w0llns3kx5hd69imhlrnlxx74zvhz7qikfx60669c5n20";
|
||||||
};
|
};
|
||||||
packageRequires = [ emacs ];
|
packageRequires = [ emacs ];
|
||||||
meta = {
|
meta = {
|
||||||
@ -2755,10 +2755,10 @@
|
|||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "relint";
|
pname = "relint";
|
||||||
ename = "relint";
|
ename = "relint";
|
||||||
version = "1.9";
|
version = "1.10";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/relint-1.9.el";
|
url = "https://elpa.gnu.org/packages/relint-1.10.el";
|
||||||
sha256 = "0y386kch263199mwl93ambwib948s2vrw466kf0ly9cxv7xpv6hr";
|
sha256 = "1l0lh4pkksw7brmhhbaikwzs4zkgd2962ks1zy7m262dvkhxjfv8";
|
||||||
};
|
};
|
||||||
packageRequires = [ xr ];
|
packageRequires = [ xr ];
|
||||||
meta = {
|
meta = {
|
||||||
@ -3271,10 +3271,10 @@
|
|||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "uniquify-files";
|
pname = "uniquify-files";
|
||||||
ename = "uniquify-files";
|
ename = "uniquify-files";
|
||||||
version = "1.0";
|
version = "1.0.1";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/uniquify-files-1.0.tar";
|
url = "https://elpa.gnu.org/packages/uniquify-files-1.0.1.tar";
|
||||||
sha256 = "1n1r3pmnh9b8zb7pyv158pzmvha4gqqrfrapvpjdcrcnnd2dynkm";
|
sha256 = "0c4lf25503z71wz9f0v6ag5lmqfxz94lmq65xvzvhmqvkxvsgpm5";
|
||||||
};
|
};
|
||||||
packageRequires = [ emacs ];
|
packageRequires = [ emacs ];
|
||||||
meta = {
|
meta = {
|
||||||
@ -3551,21 +3551,41 @@
|
|||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
};
|
};
|
||||||
}) {};
|
}) {};
|
||||||
wisi = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib, seq }:
|
wisi = callPackage ({ elpaBuild, emacs, fetchurl, lib, seq }:
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "wisi";
|
pname = "wisi";
|
||||||
ename = "wisi";
|
ename = "wisi";
|
||||||
version = "2.1.1";
|
version = "2.2.1";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/wisi-2.1.1.tar";
|
url = "https://elpa.gnu.org/packages/wisi-2.2.1.tar";
|
||||||
sha256 = "0j7pnjik07j2ipj3xavhayngnmk5jdglq78azrjvwni88m12920n";
|
sha256 = "1qvhx8bpms7gri7y6wniwqd6nmqxj4lip5l3sphbq2kjf4zq4qd4";
|
||||||
};
|
};
|
||||||
packageRequires = [ cl-lib emacs seq ];
|
packageRequires = [ emacs seq ];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://elpa.gnu.org/packages/wisi.html";
|
homepage = "https://elpa.gnu.org/packages/wisi.html";
|
||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
};
|
};
|
||||||
}) {};
|
}) {};
|
||||||
|
wisitoken-grammar-mode = callPackage ({ elpaBuild
|
||||||
|
, emacs
|
||||||
|
, fetchurl
|
||||||
|
, lib
|
||||||
|
, mmm-mode
|
||||||
|
, wisi }:
|
||||||
|
elpaBuild {
|
||||||
|
pname = "wisitoken-grammar-mode";
|
||||||
|
ename = "wisitoken-grammar-mode";
|
||||||
|
version = "1.0.2";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://elpa.gnu.org/packages/wisitoken-grammar-mode-1.0.2.tar";
|
||||||
|
sha256 = "09rpjl3z6xzap0lbrjs9hf2nspwc5avvx75ah3aimgvizrf2kyp0";
|
||||||
|
};
|
||||||
|
packageRequires = [ emacs mmm-mode wisi ];
|
||||||
|
meta = {
|
||||||
|
homepage = "https://elpa.gnu.org/packages/wisitoken-grammar-mode.html";
|
||||||
|
license = lib.licenses.free;
|
||||||
|
};
|
||||||
|
}) {};
|
||||||
wpuzzle = callPackage ({ elpaBuild, fetchurl, lib }:
|
wpuzzle = callPackage ({ elpaBuild, fetchurl, lib }:
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "wpuzzle";
|
pname = "wpuzzle";
|
||||||
|
@ -4,30 +4,15 @@
|
|||||||
|
|
||||||
To update the list of packages from MELPA,
|
To update the list of packages from MELPA,
|
||||||
|
|
||||||
1. Clone https://github.com/ttuegel/emacs2nix.
|
1. Run `./update-elpa`.
|
||||||
2. Run `./elpa-packages.sh` from emacs2nix.
|
2. Check for evaluation errors: `nix-instantiate ../../../.. -A emacsPackagesNg.elpaPackages`.
|
||||||
3. Copy the new `elpa-generated.nix` file into Nixpkgs.
|
3. `git commit -m "elpa-packages $(date -Idate)" -- elpa-generated.nix`
|
||||||
4. Check for evaluation errors: `nix-instantiate ./. -A emacsPackagesNg.elpaPackages`.
|
|
||||||
5. `git add pkgs/applications/editors/emacs-modes/elpa-generated.nix && git commit -m "elpa-packages $(date -Idate)"`
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
{ lib, stdenv, texinfo }:
|
{ lib, stdenv, texinfo }:
|
||||||
|
|
||||||
self:
|
self: let
|
||||||
|
|
||||||
let
|
|
||||||
|
|
||||||
imported = import ./elpa-generated.nix {
|
|
||||||
inherit (self) callPackage;
|
|
||||||
};
|
|
||||||
|
|
||||||
super = removeAttrs imported [ "dash" ];
|
|
||||||
|
|
||||||
elpaBuild = import ../../../build-support/emacs/elpa.nix {
|
|
||||||
inherit lib stdenv texinfo;
|
|
||||||
inherit (self) emacs;
|
|
||||||
};
|
|
||||||
|
|
||||||
markBroken = pkg: pkg.override {
|
markBroken = pkg: pkg.override {
|
||||||
elpaBuild = args: self.elpaBuild (args // {
|
elpaBuild = args: self.elpaBuild (args // {
|
||||||
@ -35,6 +20,21 @@ self:
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
elpaBuild = import ../../../build-support/emacs/elpa.nix {
|
||||||
|
inherit lib stdenv texinfo;
|
||||||
|
inherit (self) emacs;
|
||||||
|
};
|
||||||
|
|
||||||
|
generateElpa = lib.makeOverridable ({
|
||||||
|
generated ? ./elpa-generated.nix
|
||||||
|
}: let
|
||||||
|
|
||||||
|
imported = import generated {
|
||||||
|
inherit (self) callPackage;
|
||||||
|
};
|
||||||
|
|
||||||
|
super = removeAttrs imported [ "dash" ];
|
||||||
|
|
||||||
overrides = {
|
overrides = {
|
||||||
# upstream issue: missing footer
|
# upstream issue: missing footer
|
||||||
ebdb-i18n-chn = markBroken super.ebdb-i18n-chn;
|
ebdb-i18n-chn = markBroken super.ebdb-i18n-chn;
|
||||||
@ -50,4 +50,6 @@ self:
|
|||||||
|
|
||||||
elpaPackages = super // overrides;
|
elpaPackages = super // overrides;
|
||||||
|
|
||||||
in elpaPackages // { inherit elpaBuild; }
|
in elpaPackages // { inherit elpaBuild; });
|
||||||
|
|
||||||
|
in generateElpa { }
|
||||||
|
23
pkgs/applications/editors/emacs-modes/emacs2nix.nix
Normal file
23
pkgs/applications/editors/emacs-modes/emacs2nix.nix
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
let
|
||||||
|
pkgs = import ../../../.. { };
|
||||||
|
|
||||||
|
src = pkgs.fetchgit {
|
||||||
|
url = "https://github.com/ttuegel/emacs2nix.git";
|
||||||
|
fetchSubmodules = true;
|
||||||
|
rev = "752fe1bd891425cb7a4a53cd7b98c194c1fe4518";
|
||||||
|
sha256 = "0asfdswh8sbnapbqhbz539zzxmv72f1iviha95iys34sgnd5k1nk";
|
||||||
|
};
|
||||||
|
|
||||||
|
in pkgs.mkShell {
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
pkgs.bash
|
||||||
|
];
|
||||||
|
|
||||||
|
EMACS2NIX = "${src}";
|
||||||
|
|
||||||
|
shellHook = ''
|
||||||
|
export PATH=$PATH:${src}
|
||||||
|
'';
|
||||||
|
|
||||||
|
}
|
@ -2,22 +2,23 @@
|
|||||||
|
|
||||||
# Updating
|
# Updating
|
||||||
|
|
||||||
To update the list of packages from ELPA,
|
To update the list of packages from Org (ELPA),
|
||||||
|
|
||||||
1. Clone https://github.com/ttuegel/emacs2nix
|
1. Run `./update-org`.
|
||||||
2. Run `./org-packages.sh` from emacs2nix
|
2. Check for evaluation errors: `nix-instantiate ../../../.. -A emacsPackagesNg.orgPackages`.
|
||||||
3. Copy the new org-packages.json file into Nixpkgs
|
3. `git commit -m "org-packages $(date -Idate)" -- org-generated.nix`
|
||||||
4. `git commit -m "org-packages $(date -Idate)"`
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
{ }:
|
{ lib }:
|
||||||
|
|
||||||
self:
|
self: let
|
||||||
|
|
||||||
let
|
generateOrg = lib.makeOverridable ({
|
||||||
|
generated ? ./org-generated.nix
|
||||||
|
}: let
|
||||||
|
|
||||||
imported = import ./org-generated.nix {
|
imported = import generated {
|
||||||
inherit (self) callPackage;
|
inherit (self) callPackage;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -26,6 +27,6 @@ self:
|
|||||||
overrides = {
|
overrides = {
|
||||||
};
|
};
|
||||||
|
|
||||||
orgPackages = super // overrides;
|
in super // overrides);
|
||||||
|
|
||||||
in orgPackages
|
in generateOrg { }
|
||||||
|
4
pkgs/applications/editors/emacs-modes/update-elpa
Executable file
4
pkgs/applications/editors/emacs-modes/update-elpa
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#! /usr/bin/env nix-shell
|
||||||
|
#! nix-shell --show-trace ./emacs2nix.nix -i bash
|
||||||
|
|
||||||
|
exec elpa-packages.sh --names $EMACS2NIX/names.nix -o elpa-generated.nix
|
4
pkgs/applications/editors/emacs-modes/update-org
Executable file
4
pkgs/applications/editors/emacs-modes/update-org
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#! /usr/bin/env nix-shell
|
||||||
|
#! nix-shell --show-trace ./emacs2nix.nix -i bash
|
||||||
|
|
||||||
|
exec org-packages.sh --names $EMACS2NIX/names.nix -o org-generated.nix
|
@ -55,7 +55,9 @@ let
|
|||||||
mkMelpaStablePackages = melpaGeneric "stable";
|
mkMelpaStablePackages = melpaGeneric "stable";
|
||||||
mkMelpaPackages = melpaGeneric "unstable";
|
mkMelpaPackages = melpaGeneric "unstable";
|
||||||
|
|
||||||
mkOrgPackages = import ../applications/editors/emacs-modes/org-packages.nix { };
|
mkOrgPackages = import ../applications/editors/emacs-modes/org-packages.nix {
|
||||||
|
inherit lib;
|
||||||
|
};
|
||||||
|
|
||||||
emacsWithPackages = import ../build-support/emacs/wrapper.nix {
|
emacsWithPackages = import ../build-support/emacs/wrapper.nix {
|
||||||
inherit lib lndir makeWrapper stdenv runCommand;
|
inherit lib lndir makeWrapper stdenv runCommand;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user