Merge pull request #66819 from adisbladis/elpa-org-overrides

emacs-packages: Make elpa & org package sets overrideable
wip/yesman
adisbladis 5 years ago committed by GitHub
commit f2c619fae8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 78
      pkgs/applications/editors/emacs-modes/elpa-generated.nix
  2. 42
      pkgs/applications/editors/emacs-modes/elpa-packages.nix
  3. 23
      pkgs/applications/editors/emacs-modes/emacs2nix.nix
  4. 23
      pkgs/applications/editors/emacs-modes/org-packages.nix
  5. 4
      pkgs/applications/editors/emacs-modes/update-elpa
  6. 4
      pkgs/applications/editors/emacs-modes/update-org
  7. 4
      pkgs/top-level/emacs-packages.nix

@ -30,21 +30,21 @@
license = lib.licenses.free;
};
}) {};
ada-mode = callPackage ({ cl-lib ? null
, elpaBuild
ada-mode = callPackage ({ elpaBuild
, emacs
, fetchurl
, lib
, uniquify-files
, wisi }:
elpaBuild {
pname = "ada-mode";
ename = "ada-mode";
version = "6.1.1";
version = "6.2.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/ada-mode-6.1.1.tar";
sha256 = "090zyspc32fmfqwr0qpzi6qclsaarvb5484b0lq0cdyzgjhimdla";
url = "https://elpa.gnu.org/packages/ada-mode-6.2.1.tar";
sha256 = "0lg2y28qs8ls70d43ikhy5zcwadh5ddfw4k59p7sqb79w0y3lbnq";
};
packageRequires = [ cl-lib emacs wisi ];
packageRequires = [ emacs uniquify-files wisi ];
meta = {
homepage = "https://elpa.gnu.org/packages/ada-mode.html";
license = lib.licenses.free;
@ -930,10 +930,10 @@
elpaBuild {
pname = "ebdb";
ename = "ebdb";
version = "0.6.10";
version = "0.6.11";
src = fetchurl {
url = "https://elpa.gnu.org/packages/ebdb-0.6.10.tar";
sha256 = "0z0q7kcwczvdh0ddd775vv233j74sjlllv8pjm446bmy9cy6pg8j";
url = "https://elpa.gnu.org/packages/ebdb-0.6.11.tar";
sha256 = "1ljcp4vy8z5xbcrlf33xgi63a2px4fhx6928qhwr7sy7jwil2s6n";
};
packageRequires = [ cl-lib emacs seq ];
meta = {
@ -960,10 +960,10 @@
elpaBuild {
pname = "ebdb-i18n-chn";
ename = "ebdb-i18n-chn";
version = "1.2";
version = "1.3";
src = fetchurl {
url = "https://elpa.gnu.org/packages/ebdb-i18n-chn-1.2.el";
sha256 = "1qgrlk625mhfd6n1mc0kqfzbisnb61kx3vrrl3bzlz4viq3kcc10";
url = "https://elpa.gnu.org/packages/ebdb-i18n-chn-1.3.el";
sha256 = "1w7xgagscyjxrw4xl8bz6wf7skvdvk5qdcp5p7kxl4r9nhjffj20";
};
packageRequires = [ ebdb pyim ];
meta = {
@ -1297,10 +1297,10 @@
elpaBuild {
pname = "gited";
ename = "gited";
version = "0.5.3";
version = "0.5.4";
src = fetchurl {
url = "https://elpa.gnu.org/packages/gited-0.5.3.tar";
sha256 = "1bayfclczdzrmay8swszs8lliz5p4nnmjzzz2gh68rc16isjgh2z";
url = "https://elpa.gnu.org/packages/gited-0.5.4.tar";
sha256 = "07ckknggkqd733bnps21r46bacgyhd0v9wc0spid22hn0dnrfp12";
};
packageRequires = [ cl-lib emacs ];
meta = {
@ -2415,10 +2415,10 @@
elpaBuild {
pname = "phps-mode";
ename = "phps-mode";
version = "0.2.3";
version = "0.2.4";
src = fetchurl {
url = "https://elpa.gnu.org/packages/phps-mode-0.2.3.tar";
sha256 = "1wp04d5mi97287qwhic239kkf4r69839gl0hsn5m8qr3dbkhqxy5";
url = "https://elpa.gnu.org/packages/phps-mode-0.2.4.tar";
sha256 = "0n6gj22w0llns3kx5hd69imhlrnlxx74zvhz7qikfx60669c5n20";
};
packageRequires = [ emacs ];
meta = {
@ -2755,10 +2755,10 @@
elpaBuild {
pname = "relint";
ename = "relint";
version = "1.9";
version = "1.10";
src = fetchurl {
url = "https://elpa.gnu.org/packages/relint-1.9.el";
sha256 = "0y386kch263199mwl93ambwib948s2vrw466kf0ly9cxv7xpv6hr";
url = "https://elpa.gnu.org/packages/relint-1.10.el";
sha256 = "1l0lh4pkksw7brmhhbaikwzs4zkgd2962ks1zy7m262dvkhxjfv8";
};
packageRequires = [ xr ];
meta = {
@ -3271,10 +3271,10 @@
elpaBuild {
pname = "uniquify-files";
ename = "uniquify-files";
version = "1.0";
version = "1.0.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/uniquify-files-1.0.tar";
sha256 = "1n1r3pmnh9b8zb7pyv158pzmvha4gqqrfrapvpjdcrcnnd2dynkm";
url = "https://elpa.gnu.org/packages/uniquify-files-1.0.1.tar";
sha256 = "0c4lf25503z71wz9f0v6ag5lmqfxz94lmq65xvzvhmqvkxvsgpm5";
};
packageRequires = [ emacs ];
meta = {
@ -3551,21 +3551,41 @@
license = lib.licenses.free;
};
}) {};
wisi = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib, seq }:
wisi = callPackage ({ elpaBuild, emacs, fetchurl, lib, seq }:
elpaBuild {
pname = "wisi";
ename = "wisi";
version = "2.1.1";
version = "2.2.1";
src = fetchurl {
url = "https://elpa.gnu.org/packages/wisi-2.1.1.tar";
sha256 = "0j7pnjik07j2ipj3xavhayngnmk5jdglq78azrjvwni88m12920n";
url = "https://elpa.gnu.org/packages/wisi-2.2.1.tar";
sha256 = "1qvhx8bpms7gri7y6wniwqd6nmqxj4lip5l3sphbq2kjf4zq4qd4";
};
packageRequires = [ cl-lib emacs seq ];
packageRequires = [ emacs seq ];
meta = {
homepage = "https://elpa.gnu.org/packages/wisi.html";
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 }:
elpaBuild {
pname = "wpuzzle";

@ -4,36 +4,36 @@
To update the list of packages from MELPA,
1. Clone https://github.com/ttuegel/emacs2nix.
2. Run `./elpa-packages.sh` from emacs2nix.
3. Copy the new `elpa-generated.nix` file into Nixpkgs.
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)"`
1. Run `./update-elpa`.
2. Check for evaluation errors: `nix-instantiate ../../../.. -A emacsPackagesNg.elpaPackages`.
3. `git commit -m "elpa-packages $(date -Idate)" -- elpa-generated.nix`
*/
{ lib, stdenv, texinfo }:
self:
self: let
let
markBroken = pkg: pkg.override {
elpaBuild = args: self.elpaBuild (args // {
meta = (args.meta or {}) // { broken = true; };
});
};
imported = import ./elpa-generated.nix {
inherit (self) callPackage;
};
elpaBuild = import ../../../build-support/emacs/elpa.nix {
inherit lib stdenv texinfo;
inherit (self) emacs;
};
super = removeAttrs imported [ "dash" ];
generateElpa = lib.makeOverridable ({
generated ? ./elpa-generated.nix
}: let
elpaBuild = import ../../../build-support/emacs/elpa.nix {
inherit lib stdenv texinfo;
inherit (self) emacs;
imported = import generated {
inherit (self) callPackage;
};
markBroken = pkg: pkg.override {
elpaBuild = args: self.elpaBuild (args // {
meta = (args.meta or {}) // { broken = true; };
});
};
super = removeAttrs imported [ "dash" ];
overrides = {
# upstream issue: missing footer
@ -50,4 +50,6 @@ self:
elpaPackages = super // overrides;
in elpaPackages // { inherit elpaBuild; }
in elpaPackages // { inherit elpaBuild; });
in generateElpa { }

@ -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
To update the list of packages from ELPA,
To update the list of packages from Org (ELPA),
1. Clone https://github.com/ttuegel/emacs2nix
2. Run `./org-packages.sh` from emacs2nix
3. Copy the new org-packages.json file into Nixpkgs
4. `git commit -m "org-packages $(date -Idate)"`
1. Run `./update-org`.
2. Check for evaluation errors: `nix-instantiate ../../../.. -A emacsPackagesNg.orgPackages`.
3. `git commit -m "org-packages $(date -Idate)" -- org-generated.nix`
*/
{ }:
{ lib }:
self:
self: let
let
generateOrg = lib.makeOverridable ({
generated ? ./org-generated.nix
}: let
imported = import ./org-generated.nix {
imported = import generated {
inherit (self) callPackage;
};
@ -26,6 +27,6 @@ self:
overrides = {
};
orgPackages = super // overrides;
in super // overrides);
in orgPackages
in generateOrg { }

@ -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

@ -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";
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 {
inherit lib lndir makeWrapper stdenv runCommand;

Loading…
Cancel
Save