From eacc71a6b61e574c062d6bfa012ed0ffb2ec7f20 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 18 Aug 2019 10:41:40 +0100 Subject: [PATCH 1/5] emacs-packages: Add easy wrapper script to update elpa --- .../editors/emacs-modes/elpa-packages.nix | 8 +++---- .../editors/emacs-modes/emacs2nix.nix | 23 +++++++++++++++++++ .../editors/emacs-modes/update-elpa | 4 ++++ 3 files changed, 30 insertions(+), 5 deletions(-) create mode 100644 pkgs/applications/editors/emacs-modes/emacs2nix.nix create mode 100755 pkgs/applications/editors/emacs-modes/update-elpa diff --git a/pkgs/applications/editors/emacs-modes/elpa-packages.nix b/pkgs/applications/editors/emacs-modes/elpa-packages.nix index e7ed5a32b65..2312730ab0c 100644 --- a/pkgs/applications/editors/emacs-modes/elpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/elpa-packages.nix @@ -4,11 +4,9 @@ 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"` */ diff --git a/pkgs/applications/editors/emacs-modes/emacs2nix.nix b/pkgs/applications/editors/emacs-modes/emacs2nix.nix new file mode 100644 index 00000000000..4c1a0dd2312 --- /dev/null +++ b/pkgs/applications/editors/emacs-modes/emacs2nix.nix @@ -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} + ''; + +} diff --git a/pkgs/applications/editors/emacs-modes/update-elpa b/pkgs/applications/editors/emacs-modes/update-elpa new file mode 100755 index 00000000000..ba2964b2ead --- /dev/null +++ b/pkgs/applications/editors/emacs-modes/update-elpa @@ -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 From ee80e10a980ed0d7f111f54abff27d4909c16c76 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 18 Aug 2019 10:47:42 +0100 Subject: [PATCH 2/5] emacs-packages: Make elpa generated file overrideable --- .../editors/emacs-modes/elpa-packages.nix | 36 ++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/pkgs/applications/editors/emacs-modes/elpa-packages.nix b/pkgs/applications/editors/emacs-modes/elpa-packages.nix index 2312730ab0c..5f0c863b586 100644 --- a/pkgs/applications/editors/emacs-modes/elpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/elpa-packages.nix @@ -6,33 +6,35 @@ To update the list of packages from MELPA, 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"` +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 { + 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" ]; - elpaBuild = import ../../../build-support/emacs/elpa.nix { - inherit lib stdenv texinfo; - inherit (self) emacs; - }; - - markBroken = pkg: pkg.override { - elpaBuild = args: self.elpaBuild (args // { - meta = (args.meta or {}) // { broken = true; }; - }); - }; - overrides = { # upstream issue: missing footer ebdb-i18n-chn = markBroken super.ebdb-i18n-chn; @@ -48,4 +50,6 @@ self: elpaPackages = super // overrides; - in elpaPackages // { inherit elpaBuild; } + in elpaPackages // { inherit elpaBuild; }); + +in generateElpa { } From 316f68552b38e31337b37584b2af7e933ee974c3 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 18 Aug 2019 10:56:47 +0100 Subject: [PATCH 3/5] emacs-packages: Add simple org-packages update wrapper script --- pkgs/applications/editors/emacs-modes/update-org | 4 ++++ 1 file changed, 4 insertions(+) create mode 100755 pkgs/applications/editors/emacs-modes/update-org diff --git a/pkgs/applications/editors/emacs-modes/update-org b/pkgs/applications/editors/emacs-modes/update-org new file mode 100755 index 00000000000..2119a167228 --- /dev/null +++ b/pkgs/applications/editors/emacs-modes/update-org @@ -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 From b6ccc1a6b09937f9481b5f66fed140fcc70fd452 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 18 Aug 2019 10:58:17 +0100 Subject: [PATCH 4/5] emacs-packages: Make org packages overrideable --- .../editors/emacs-modes/org-packages.nix | 23 ++++++++++--------- pkgs/top-level/emacs-packages.nix | 4 +++- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/pkgs/applications/editors/emacs-modes/org-packages.nix b/pkgs/applications/editors/emacs-modes/org-packages.nix index d3ad7fa4093..1f37cf624f9 100644 --- a/pkgs/applications/editors/emacs-modes/org-packages.nix +++ b/pkgs/applications/editors/emacs-modes/org-packages.nix @@ -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 { } diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 5719c5a74fe..0c85176acba 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.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; From 517d1b086943013efb2233cd4927e0ac2ddfffc7 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Sun, 18 Aug 2019 11:07:23 +0100 Subject: [PATCH 5/5] elpa-packages: 2019-08-18 --- .../editors/emacs-modes/elpa-generated.nix | 78 ++++++++++++------- 1 file changed, 49 insertions(+), 29 deletions(-) diff --git a/pkgs/applications/editors/emacs-modes/elpa-generated.nix b/pkgs/applications/editors/emacs-modes/elpa-generated.nix index eeb025a88c6..31e87df6d85 100644 --- a/pkgs/applications/editors/emacs-modes/elpa-generated.nix +++ b/pkgs/applications/editors/emacs-modes/elpa-generated.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";