From 6acb0162840c35d0218fcaa1f21df701340292e1 Mon Sep 17 00:00:00 2001 From: Vonfry Date: Mon, 14 Jun 2021 10:53:49 +0800 Subject: [PATCH] emacsPackages.nongnuPackages: init --- .../emacs/elisp-packages/nongnu-generated.nix | 93 +++++++++++++++++++ .../emacs/elisp-packages/nongnu-packages.nix | 32 +++++++ .../emacs/elisp-packages/update-nongnu | 4 + pkgs/top-level/emacs-packages.nix | 6 ++ 4 files changed, 135 insertions(+) create mode 100644 pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix create mode 100644 pkgs/applications/editors/emacs/elisp-packages/nongnu-packages.nix create mode 100755 pkgs/applications/editors/emacs/elisp-packages/update-nongnu diff --git a/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix b/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix new file mode 100644 index 000000000000..0ab44fccc8e5 --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix @@ -0,0 +1,93 @@ +{ callPackage }: + { + caml = callPackage ({ elpaBuild, fetchurl, lib }: + elpaBuild { + pname = "caml"; + ename = "caml"; + version = "4.7.1"; + src = fetchurl { + url = "https://elpa.nongnu.org/nongnu/caml-4.7.1.tar"; + sha256 = "1bv2fscy7zg7r1hyg4rpvh3991vmhy4zid7bv1qbhxa95m9c49j3"; + }; + packageRequires = []; + meta = { + homepage = "https://elpa.gnu.org/packages/caml.html"; + license = lib.licenses.free; + }; + }) {}; + markdown-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }: + elpaBuild { + pname = "markdown-mode"; + ename = "markdown-mode"; + version = "2.4"; + src = fetchurl { + url = "https://elpa.nongnu.org/nongnu/markdown-mode-2.4.tar"; + sha256 = "002nvc2p7jzznr743znbml3vj8a3kvdd89rlbi28f5ha14g2567z"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://elpa.gnu.org/packages/markdown-mode.html"; + license = lib.licenses.free; + }; + }) {}; + org-contrib = callPackage ({ elpaBuild, emacs, fetchurl, lib, org }: + elpaBuild { + pname = "org-contrib"; + ename = "org-contrib"; + version = "0.1"; + src = fetchurl { + url = "https://elpa.nongnu.org/nongnu/org-contrib-0.1.tar"; + sha256 = "07hzywvgj11wd21dw4lbkvqv32da03407f9qynlzgg1qa7wknm2k"; + }; + packageRequires = [ emacs org ]; + meta = { + homepage = "https://elpa.gnu.org/packages/org-contrib.html"; + license = lib.licenses.free; + }; + }) {}; + request = callPackage ({ elpaBuild, emacs, fetchurl, lib }: + elpaBuild { + pname = "request"; + ename = "request"; + version = "0.3.3"; + src = fetchurl { + url = "https://elpa.nongnu.org/nongnu/request-0.3.3.tar"; + sha256 = "168yy902bcjfdaahsbzhzb4wgqbw1mq1lfwdjh66fpzqs75c5q00"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://elpa.gnu.org/packages/request.html"; + license = lib.licenses.free; + }; + }) {}; + sly = callPackage ({ elpaBuild, emacs, fetchurl, lib }: + elpaBuild { + pname = "sly"; + ename = "sly"; + version = "1.0.43"; + src = fetchurl { + url = "https://elpa.nongnu.org/nongnu/sly-1.0.43.tar"; + sha256 = "0qgji539qwk7lv9g1k11w0i2nn7n7nk456gwa0bh556mcqz2ndr8"; + }; + packageRequires = [ emacs ]; + meta = { + homepage = "https://elpa.gnu.org/packages/sly.html"; + license = lib.licenses.free; + }; + }) {}; + tuareg = callPackage ({ caml, elpaBuild, emacs, fetchurl, lib }: + elpaBuild { + pname = "tuareg"; + ename = "tuareg"; + version = "2.3.0"; + src = fetchurl { + url = "https://elpa.nongnu.org/nongnu/tuareg-2.3.0.tar"; + sha256 = "0a24q64yk4bbgsvm56j1y68zs9yi25qyl83xydx3ff75sk27f1yb"; + }; + packageRequires = [ caml emacs ]; + meta = { + homepage = "https://elpa.gnu.org/packages/tuareg.html"; + license = lib.licenses.free; + }; + }) {}; + } diff --git a/pkgs/applications/editors/emacs/elisp-packages/nongnu-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/nongnu-packages.nix new file mode 100644 index 000000000000..c3459448c281 --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/nongnu-packages.nix @@ -0,0 +1,32 @@ +/* + +# Updating + +To update the list of packages from nongnu (ELPA), + +1. Run `./update-nongnu`. +2. Check for evaluation errors: `nix-instantiate ../../../../.. -A emacs.pkgs.nongnuPackages`. +3. Run `git commit -m "org-packages $(date -Idate)" -- nongnu-generated.nix` + +*/ + +{ lib }: + +self: let + + generateNongnu = lib.makeOverridable ({ + generated ? ./nongnu-generated.nix + }: let + + imported = import generated { + inherit (self) callPackage; + }; + + super = imported; + + overrides = { + }; + + in super // overrides); + +in generateNongnu { } diff --git a/pkgs/applications/editors/emacs/elisp-packages/update-nongnu b/pkgs/applications/editors/emacs/elisp-packages/update-nongnu new file mode 100755 index 000000000000..dc43a86efbe3 --- /dev/null +++ b/pkgs/applications/editors/emacs/elisp-packages/update-nongnu @@ -0,0 +1,4 @@ +#! /usr/bin/env nix-shell +#! nix-shell --show-trace ./emacs2nix.nix -i bash + +exec nongnu-packages.sh --names $EMACS2NIX/names.nix -o nongnu-generated.nix diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index 34f995616017..4d4c172296a1 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -30,6 +30,10 @@ let inherit lib; }; + mkNongnuPackages = { lib }: import ../applications/editors/emacs/elisp-packages/nongnu-packages.nix { + inherit lib; + }; + # Contains both melpa stable & unstable melpaGeneric = { pkgs, lib }: import ../applications/editors/emacs/elisp-packages/melpa-packages.nix { inherit lib pkgs; @@ -53,12 +57,14 @@ in makeScope pkgs'.newScope (self: makeOverridable ({ pkgs ? pkgs' , lib ? pkgs.lib , elpaPackages ? mkElpaPackages { inherit pkgs lib; } self + , nongnuPackages ? mkNongnuPackages { inherit lib; } self , melpaStablePackages ? melpaGeneric { inherit pkgs lib; } "stable" self , melpaPackages ? melpaGeneric { inherit pkgs lib; } "unstable" self , orgPackages ? mkOrgPackages { inherit lib; } self , manualPackages ? mkManualPackages { inherit pkgs lib; } self }: ({} // elpaPackages // { inherit elpaPackages; } + // nongnuPackages // { inherit nongnuPackages; } // melpaStablePackages // { inherit melpaStablePackages; } // melpaPackages // { inherit melpaPackages; } // orgPackages // { inherit orgPackages; }