about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/editors
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-09-27 16:00:58 +0000
committerAlyssa Ross <hi@alyssa.is>2021-09-27 16:00:58 +0000
commitc504e5d19d940926b3ddcf62c983d66f49f3cbb2 (patch)
treeec955e58bcac2cb93b9f8c10786b23f61d40cd7e /nixpkgs/pkgs/applications/editors
parent72789cefce7b17419815f600fbd18238d89afcc9 (diff)
parent1737f98af6667560e3e4f930312f9b5002649d04 (diff)
downloadnixlib-c504e5d19d940926b3ddcf62c983d66f49f3cbb2.tar
nixlib-c504e5d19d940926b3ddcf62c983d66f49f3cbb2.tar.gz
nixlib-c504e5d19d940926b3ddcf62c983d66f49f3cbb2.tar.bz2
nixlib-c504e5d19d940926b3ddcf62c983d66f49f3cbb2.tar.lz
nixlib-c504e5d19d940926b3ddcf62c983d66f49f3cbb2.tar.xz
nixlib-c504e5d19d940926b3ddcf62c983d66f49f3cbb2.tar.zst
nixlib-c504e5d19d940926b3ddcf62c983d66f49f3cbb2.zip
Merge commit '1737f98af6667560e3e4f930312f9b5002649d04'
Conflicts:
	nixpkgs/nixos/modules/services/networking/ssh/sshd.nix
	nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix
	nixpkgs/pkgs/development/node-packages/default.nix
	nixpkgs/pkgs/development/python-modules/priority/deadline.patch
Diffstat (limited to 'nixpkgs/pkgs/applications/editors')
-rw-r--r--nixpkgs/pkgs/applications/editors/android-studio/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/apostrophe/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/editors/cudatext/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/cudatext/deps.json24
-rw-r--r--nixpkgs/pkgs/applications/editors/eclipse/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/editors/eclipse/plugins.nix6
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/agda-input/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/agda2-mode/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/apheleia/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/bqn-mode/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/cedille/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/color-theme-solarized/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/emacspeak/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ement/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ement/handle-nil-images.patch28
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ess-R-object-popup/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/evil-markdown/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/font-lock-plus/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/git-undo/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/helm-words/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ido-ubiquitous/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/isearch-plus/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/isearch-prop/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/jam-mode/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/llvm-mode/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix119
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/mu4e-patch/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/nano-theme/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/org-mac-link/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ott-mode/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/plz/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/power-mode/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/prolog/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/railgun/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/rect-mark/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/sunrise-commander/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/tramp/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/urweb-mode/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/youtube-dl/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/elisp-packages/zeitgeist/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/tests.nix22
-rw-r--r--nixpkgs/pkgs/applications/editors/netbeans/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/rstudio/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/sigil/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/texmaker/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/common.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/configurable.nix10
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/generic.nix19
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/vscode.nix12
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/vscodium.nix10
51 files changed, 554 insertions, 572 deletions
diff --git a/nixpkgs/pkgs/applications/editors/android-studio/default.nix b/nixpkgs/pkgs/applications/editors/android-studio/default.nix
index 0c9bd808b53c..85cd9dd90598 100644
--- a/nixpkgs/pkgs/applications/editors/android-studio/default.nix
+++ b/nixpkgs/pkgs/applications/editors/android-studio/default.nix
@@ -17,8 +17,8 @@ let
     sha256Hash = "04k7c328bl8ixi8bvp2mm33q2hmv40yc9p5dff5cghyycarwpd3f";
   };
   latestVersion = { # canary & dev
-    version = "2021.1.1.11"; # "Android Studio Bumblebee (2021.1.1) Canary 11"
-    sha256Hash = "0npvb7kr259799bs2bs2drvimmmwb0rdzswbkz8zgi5c2fwjcvvl";
+    version = "2021.1.1.12"; # "Android Studio Bumblebee (2021.1.1) Canary 12"
+    sha256Hash = "1dyn9435s0xbxwj28b0cciz6ry58pgfgba4rbny3jszxi5j3j0r1";
   };
 in {
   # Attributes are named by their corresponding release channels
diff --git a/nixpkgs/pkgs/applications/editors/apostrophe/default.nix b/nixpkgs/pkgs/applications/editors/apostrophe/default.nix
index df0be4ccfbea..e5cfeb964bd7 100644
--- a/nixpkgs/pkgs/applications/editors/apostrophe/default.nix
+++ b/nixpkgs/pkgs/applications/editors/apostrophe/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv, fetchFromGitLab, meson, ninja, cmake
+{ lib, stdenv, fetchFromGitLab, meson, ninja
 , wrapGAppsHook, pkg-config, desktop-file-utils
 , appstream-glib, pythonPackages, glib, gobject-introspection
 , gtk3, webkitgtk, glib-networking, gnome, gspell, texlive
-, shared-mime-info, libhandy, fira
+, shared-mime-info, libhandy, fira, sassc
 }:
 
 let
@@ -13,18 +13,18 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "apostrophe";
-  version = "2.4";
+  version = "2.5";
 
   src = fetchFromGitLab {
-    owner  = "somas";
+    owner  = "World";
     repo   = pname;
     domain = "gitlab.gnome.org";
     rev    = "v${version}";
-    sha256 = "1qzy3zhi18wf42m034s8kcmx9gl05j620x3hf6rnycq2fvy7g4gz";
+    sha256 = "06yfiflmj3ip7ppcz41nb3xpgb5ggw5h74w0v87yaqqkq7qh31lp";
   };
 
-  nativeBuildInputs = [ meson ninja cmake pkg-config desktop-file-utils
-    appstream-glib wrapGAppsHook ];
+  nativeBuildInputs = [ meson ninja pkg-config desktop-file-utils
+    appstream-glib wrapGAppsHook sassc ];
 
   buildInputs = [ glib pythonEnv gobject-introspection gtk3
     gnome.adwaita-icon-theme webkitgtk gspell texlive
@@ -49,7 +49,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = "https://gitlab.gnome.org/somas/apostrophe";
+    homepage = "https://gitlab.gnome.org/World/apostrophe";
     description = "A distraction free Markdown editor for GNU/Linux";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/editors/cudatext/default.nix b/nixpkgs/pkgs/applications/editors/cudatext/default.nix
index ad06c80f3a40..ed60c07c8c81 100644
--- a/nixpkgs/pkgs/applications/editors/cudatext/default.nix
+++ b/nixpkgs/pkgs/applications/editors/cudatext/default.nix
@@ -38,13 +38,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "cudatext";
-  version = "1.142.0";
+  version = "1.143.0";
 
   src = fetchFromGitHub {
     owner = "Alexey-T";
     repo = "CudaText";
     rev = version;
-    sha256 = "sha256-4kVi921dromMqiAuFjm2EOCDXCq4oT+ijko4/uT4LLs=";
+    sha256 = "sha256-j8J4OA4J43XIJKBMx8hQy7h1BcKfEhWvpgmpNmi/yrw=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/editors/cudatext/deps.json b/nixpkgs/pkgs/applications/editors/cudatext/deps.json
index 49dfd7e8dfe0..83ffea320ae2 100644
--- a/nixpkgs/pkgs/applications/editors/cudatext/deps.json
+++ b/nixpkgs/pkgs/applications/editors/cudatext/deps.json
@@ -11,28 +11,28 @@
   },
   "ATFlatControls": {
     "owner": "Alexey-T",
-    "rev": "2021.07.22",
-    "sha256": "sha256-sAF/klzPa8fCKKBtpj0h9B+zoGDvA80uL4u4VTikUaI="
+    "rev": "2021.08.28",
+    "sha256": "sha256-nFRlSeU2ScPQrLXcd4dt8l9Ct7ceJyKMi97gtxz+S8I="
   },
   "ATSynEdit": {
     "owner": "Alexey-T",
-    "rev": "2021.08.20",
-    "sha256": "sha256-cVl1HJHLsYTFKQ/Ov+rcP6UAwRJPp7rtmLlZC9S+Jek="
+    "rev": "2021.09.03",
+    "sha256": "sha256-2y1E+52MPkimmozo1Qwpg7Qyhjct3cs76nHlOf/Cs0M="
   },
   "ATSynEdit_Cmp": {
     "owner": "Alexey-T",
-    "rev": "2021.08.20",
-    "sha256": "sha256-PZtP/J4tJN2Egk/Bp/5DtHlV46yRjhcZL9xhDk6xjBk="
+    "rev": "2021.09.03",
+    "sha256": "sha256-pZo+wKnqN2HfDjPeC/WqaE5sdNnpjRN2VKSP8p4Q6Ek="
   },
   "EControl": {
     "owner": "Alexey-T",
-    "rev": "2021.08.12",
-    "sha256": "sha256-Ht7jfFGlvb7khLD0OekuBvkU9ROyDiyUSe+lLI/Rm64="
+    "rev": "2021.09.02",
+    "sha256": "sha256-i8laXF9IIhVkGZ2rzv7RlZeMxUza5LAXlTOxDj9CzJo="
   },
   "ATSynEdit_Ex": {
     "owner": "Alexey-T",
-    "rev": "2021.07.29",
-    "sha256": "sha256-mCT3F0GPC+Hl7WOtYznxErMTyr9cH4ghaanYMum+3Fg="
+    "rev": "2021.09.03",
+    "sha256": "sha256-XYFnTfRa0n9XF9l/hL6z5RFZgdpVP9o1If4qln905Yc="
   },
   "Python-for-Lazarus": {
     "owner": "Alexey-T",
@@ -51,7 +51,7 @@
   },
   "bgrabitmap": {
     "owner": "bgrabitmap",
-    "rev": "v11.3.1",
-    "sha256": "1f95rdpfwqy9fipzybi17nbhq46zj45yjps21p2hplhinrr49n2p"
+    "rev": "v11.4",
+    "sha256": "sha256-jZL8lzjua033E76IL0HIk/fihC73ifCb4LqMni7vvb0="
   }
 }
diff --git a/nixpkgs/pkgs/applications/editors/eclipse/default.nix b/nixpkgs/pkgs/applications/editors/eclipse/default.nix
index 000726dd81aa..dc19191d769a 100644
--- a/nixpkgs/pkgs/applications/editors/eclipse/default.nix
+++ b/nixpkgs/pkgs/applications/editors/eclipse/default.nix
@@ -16,10 +16,10 @@ assert stdenv ? glibc;
 
 let
   platform_major = "4";
-  platform_minor = "19";
+  platform_minor = "20";
   year = "2021";
-  month = "03";
-  timestamp = "${year}${month}031800";
+  month = "06";
+  timestamp = "${year}${month}111600";
   gtk = gtk3;
 in rec {
 
@@ -37,7 +37,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-cpp-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "3j0lmll0glcr9p0hf49jiaq9xr8hadsy0y58wbbkdpldj3rclxr056dkswmiw2bkypfiwrjygbli5qxyp6mz380562hc2kjwijqq476";
+        sha512 = "3ggqiwa1nfszdqzdzw1lzs1sdikkvh2fqq10bqjxsq7xdxkis4zix8g4jcjiwlsz5gz98s61gp0k4m5rqsj0krpklxs9ijwq76khc7z";
       };
   };
 
@@ -49,7 +49,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-modeling-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "0iqz9a3ixcbmaci6lnspdnzwd2h1fcygi54hmsl89pq3d1k5scyhcl123ixi24csi782w847bn0lq00n0zwras9akmnhsflra4mw5pz";
+        sha512 = "38cdhy6v8jmndanvl3bimfs3pnlnl3w066fqrljy2hwki58gqmxxmbld5mphbh9y5kz9b5kiqvhx06sf0l2ywbarxy9wfhynvzb2k17";
       };
   };
 
@@ -61,7 +61,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-platform-${platform_major}.${platform_minor}-linux-gtk-x86_64.tar.gz";
-        sha512 = "03v1ly7j9d9qnl3d9rl5a9kp483dz8i8v3cfnh55ksm9fk8iy2fzg6wq178ggnx2z5x9k88a4wk6n647yilh2hgc2l7926imkh2j1ly";
+        sha512 = "2chshmn09xdq42nix0jqryhac33xc5sg7nlp2vfmz5km6q4m6mc1k7pw10jmg86zzcvcsdl9k1wkrbcsj5y2gv4cg6rddzsbx9hw3s7";
       };
   };
 
@@ -86,7 +86,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-SDK-${platform_major}.${platform_minor}-linux-gtk-x86_64.tar.gz";
-        sha512 = "37m91my121pch12bwpwk5svfqkm7vl07wjx4fkhpy947v5kjf36hm6x0i45swdg7f0hk72y2qz5ka15ki5jv890qy5psj6z7ax9sys7";
+        sha512 = "308sszkmp5lkva5hfb1qc5cy9b1wajas96xz5nwjl7dm2fn4saiwg3ifh71hzq59wf337hndlb2c2dp6yczsfp3mzfqmsi5a3z7dchr";
       };
   };
 
@@ -98,7 +98,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-java-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "3qrnj6krhrqc9rfwlim3v7kshwfhsi050pszw6xdfbj56mzr9whr7l76isbpxd5j0zipgfw3qrzrx379pdp899d35fv284ilvllzl4k";
+        sha512 = "1wp3g85bsmv0mbpk76adsz1rzd3vbdn4y4ddv9z41bq96wi9npmybidckvwnrq57lbj8k5g8m0x0f1nhj2rv5bqbsnqjxjpknwa6is0";
       };
   };
 
@@ -110,7 +110,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-jee-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "04k4x9imabxddqlrgajn33ak8i58wcap40ll09xz23d1sxn9a8prh01s06ymgwg6ldg939srphvbz4112p8p0b1hl7m25a02qll91zv";
+        sha512 = "35v8kjpdlhbcxncqygx7c1kjqy1644c6rhrasg8gxnrhlc69zblf4nvgzf1894vd13qzpkzzxx0qll49933prnw98dqkrd0wxcx7f49";
       };
   };
 
@@ -122,7 +122,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-committers-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "2yksl3w7yr1a3h4zdpa9zf394r5c185zqxhigdv858ldg46kmr9h0l2c7shbgb16kkybcnrk4x44dhjvh60x8xw6ma05klp4lp9v5va";
+        sha512 = "1jj5h69d4814j1mq6fjd47vkswq7bshbh2flgzmn8ibs0ys67x0nd2lm2ksxmvnipj4j9rw3mh9fmw8m0dzpp41c6q8xxfa93c7pqyg";
       };
   };
 
@@ -134,7 +134,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-rcp-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "3fhrhwbyqcys56c93s1vl9rbvn269nn5y3cb9f3n1qwgw6i97mim2zy98jl3r8cksf97jwsmqmsqclsgz9v799wcckv81dj1l628382";
+        sha512 = "19fr63bdifxqp6imgb4d7v5dnkn9i0n2wmr08xzb0ph425ib936jiw84c2nwnsfnljh0yfj1r3wd36y2nn52fsj6ginl8plc6pi5416";
       };
   };
 
diff --git a/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix b/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix
index 5937311b5c93..839b079ce7b7 100644
--- a/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix
+++ b/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix
@@ -248,12 +248,12 @@ rec {
   cdt = buildEclipseUpdateSite rec {
     name = "cdt-${version}";
     # find current version at https://www.eclipse.org/cdt/downloads.php
-    version = "10.2.0";
+    version = "10.3.2";
 
     src = fetchzip {
       stripRoot = false;
-      url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/10.2/${name}/${name}.zip";
-      sha256 = "1r30cbpbzw3dfcsn54p6sqip86dqhydhsppjgaz60b6z138vzx49";
+      url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/${lib.versions.majorMinor version}/${name}/${name}.zip";
+      sha256 = "0zrxgb8mkrzc1zm5225hzn8awj9yl5fd2dcr92692g0yg61nv4jd";
     };
 
     meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/agda-input/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/agda-input/default.nix
new file mode 100644
index 000000000000..a96f7393dfaf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/agda-input/default.nix
@@ -0,0 +1,18 @@
+{ trivialBuild
+, haskellPackages
+}:
+
+trivialBuild {
+  pname = "agda-input";
+
+  inherit (haskellPackages.Agda) src version;
+
+  postUnpack = ''
+    mv $sourceRoot/src/data/emacs-mode/agda-input.el $sourceRoot
+  '';
+
+  meta = {
+    inherit (haskellPackages.Agda.meta) homepage license;
+    description = "Standalone package providing the agda-input method without building Agda.";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/agda2-mode/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/agda2-mode/default.nix
new file mode 100644
index 000000000000..2533153bd447
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/agda2-mode/default.nix
@@ -0,0 +1,27 @@
+{ trivialBuild
+, haskellPackages
+}:
+
+trivialBuild rec {
+  pname = "agda-mode";
+  version = haskellPackages.Agda.version;
+
+  dontUnpack = true;
+
+  # already byte-compiled by Agda builder
+  buildPhase = ''
+    agda=`${haskellPackages.Agda}/bin/agda-mode locate`
+    cp `dirname $agda`/*.el* .
+  '';
+
+  meta = {
+    inherit (haskellPackages.Agda.meta) homepage license;
+    description = "Agda2-mode for Emacs extracted from Agda package";
+    longDescription = ''
+      Wrapper packages that liberates init.el from `agda-mode locate` magic.
+      Simply add this to user profile or systemPackages and do `(require
+      'agda2)` in init.el.
+    '';
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/apheleia/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/apheleia/default.nix
index a5f06efa33cc..935533b34ae9 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/apheleia/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/apheleia/default.nix
@@ -1,10 +1,11 @@
 { lib
 , stdenv
+, trivialBuild
 , fetchFromGitHub
 , emacs
 }:
 
-stdenv.mkDerivation rec {
+trivialBuild rec {
   pname = "apheleia";
   version = "0.0.0+unstable=2021-08-08";
 
@@ -19,19 +20,6 @@ stdenv.mkDerivation rec {
     emacs
   ];
 
-  buildPhase = ''
-    runHook preBuild
-    emacs -L . --batch -f batch-byte-compile *.el
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-    install -d $out/share/emacs/site-lisp
-    install *.el *.elc $out/share/emacs/site-lisp
-    runHook postInstall
-  '';
-
   meta = with lib; {
     homepage = "https://github.com/raxod502/apheleia";
     description = "Asynchronous buffer reformat";
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/bqn-mode/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/bqn-mode/default.nix
new file mode 100644
index 000000000000..a12eee62fecd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/bqn-mode/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, trivialBuild
+, fetchFromGitHub
+}:
+
+trivialBuild {
+  pname = "bqn-mode";
+  version = "0.0.0+unstable=-2021-09-15";
+
+  src = fetchFromGitHub {
+    owner = "mlochbaum";
+    repo = "BQN";
+    rev = "fb6ec1d8b083cd2b335828ae22e978b1b13986fa";
+    hash = "sha256-57ryT5gb7hToAJOiGjjgU87rmlswjPK9tV1iQzJ4C0Y=";
+  };
+
+  postUnpack = ''
+    sourceRoot="$sourceRoot/editors/emacs"
+  '';
+
+  meta = with lib; {
+    homepage = "https://mlochbaum.github.io/BQN/editors/index.html";
+    description = "Emacs mode for BQN";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/cedille/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/cedille/default.nix
index f03aa92c3af3..e9a5e9128810 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/cedille/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/cedille/default.nix
@@ -1,30 +1,33 @@
-{ stdenv, cedille, emacs }:
+{ stdenv
+, cedille
+, emacs
+}:
 
 stdenv.mkDerivation {
   pname = "cedille-mode";
-  version = cedille.version;
 
-  src = cedille.src;
+  inherit (cedille) version src;
 
   buildInputs = [ emacs ];
 
   dontBuild = true;
 
   installPhase = ''
+    runHook preInstall
+
     install -d $out/share/emacs/site-lisp
     install se-mode/*.el se-mode/*.elc $out/share/emacs/site-lisp
     install cedille-mode/*.el cedille-mode/*.elc $out/share/emacs/site-lisp
     install *.el *.elc $out/share/emacs/site-lisp
     substituteInPlace $out/share/emacs/site-lisp/cedille-mode.el \
-      --replace /usr/bin/cedille ${cedille}/bin/cedille \
+      --replace /usr/bin/cedille ${cedille}/bin/cedille
 
+    runHook postInstall
   '';
 
   meta = {
+    inherit (cedille.meta)
+      homepage license maintainers platforms;
     description = "Emacs major mode for Cedille";
-    homepage    = cedille.meta.homepage;
-    license     = cedille.meta.license ;
-    platforms   = cedille.meta.platforms;
-    maintainers = cedille.meta.maintainers;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/color-theme-solarized/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/color-theme-solarized/default.nix
index ce85e9be4e9a..feb6c0fa86ca 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/color-theme-solarized/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/color-theme-solarized/default.nix
@@ -1,33 +1,38 @@
-{lib, stdenv, fetchzip, emacs, color-theme}:
-let
-  commit = "f3ca8902ea056fb8e46cb09f09c96294e31cd4ee";
-in
-stdenv.mkDerivation {
-  name = "color-theme-solarized-1.0.0";
+{ lib
+, trivialBuild
+, fetchFromGitHub
+, emacs
+, color-theme
+}:
 
-  src = fetchzip {
+trivialBuild {
+  pname = "color-theme-solarized";
+  version = "0.0.0+unstable=2017-10-24";
 
-    url = "https://github.com/sellout/emacs-color-theme-solarized/archive/${commit}.zip";
-    sha256 = "16d7adqi07lzzr0qipl1fbag9l8kiyr3xrqxi528pimcisbg85d3";
+  src = fetchFromGitHub {
+    owner = "sellout";
+    repo = "emacs-color-theme-solarized";
+    rev = "f3ca8902ea056fb8e46cb09f09c96294e31cd4ee";
+    hash = "sha256-oxX0lo6sxotEiR3nPrKPE9H01HKB3ohB/p8eEHFTp5k=";
   };
 
   buildInputs = [ emacs ];
   propagatedUserEnvPkgs = [ color-theme ];
 
   buildPhase = ''
-    emacs -L . -L ${color-theme}/share/emacs/site-lisp/elpa/color-theme-* --batch -f batch-byte-compile *.el
-  '';
+    runHook preBuild
+
+    emacs -L . -L ${color-theme}/share/emacs/site-lisp/elpa/color-theme-* \
+      --batch -f batch-byte-compile *.el
 
-  installPhase = ''
-    mkdir -p $out/share/emacs/site-lisp
-    install *.el* $out/share/emacs/site-lisp
+    runHook postBuild
   '';
 
   meta = with lib; {
-    description = "Precision colors for machines and people";
     homepage = "http://ethanschoonover.com/solarized";
-    maintainers = [ maintainers.samuelrivas ];
+    description = "Precision colors for machines and people; Emacs implementation";
     license = licenses.mit;
-    platforms = platforms.all;
+    maintainers = with maintainers; [ samuelrivas AndersonTorres ];
+    inherit (emacs.meta) platforms;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/emacspeak/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/emacspeak/default.nix
index 577f5136326c..84d724c3518b 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/emacspeak/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/emacspeak/default.nix
@@ -1,16 +1,33 @@
-{ stdenv, fetchurl, makeWrapper, emacs, tcl, tclx, espeak-ng, lib }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, makeWrapper
+, emacs
+, tcl
+, tclx
+, espeak-ng
+}:
 
 stdenv.mkDerivation rec {
   pname = "emacspeak";
   version = "54.0";
 
-  src = fetchurl {
-    url = "https://github.com/tvraman/emacspeak/releases/download/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-wsIqiW4UtgdAhqPqgCKgF37+hAtmAelAEnme1W9PKes=";
+  src = fetchFromGitHub {
+    owner = "tvraman";
+    repo = pname;
+    rev = version;
+    hash= "sha256-aOZ8PmkASJKETPhXhE9WQXyJS7SPe+d97fK/piqqzqc=";
   };
 
-  nativeBuildInputs = [ makeWrapper emacs ];
-  buildInputs = [ tcl tclx espeak-ng ];
+  nativeBuildInputs = [
+    emacs
+    makeWrapper
+  ];
+  buildInputs = [
+    espeak-ng
+    tcl
+    tclx
+  ];
 
   preConfigure = ''
     make config
@@ -32,11 +49,11 @@ stdenv.mkDerivation rec {
         --add-flags '-l "${placeholder "out"}/share/emacs/site-lisp/emacspeak/lisp/emacspeak-setup.elc"'
   '';
 
-  meta = {
+  meta = with lib; {
     homepage = "https://github.com/tvraman/emacspeak/";
     description = "Emacs extension that provides spoken output";
-    license = lib.licenses.gpl2;
-    maintainers = [ ];
-    platforms = lib.platforms.linux;
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.AndersonTorres ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ement/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ement/default.nix
new file mode 100644
index 000000000000..73fd2f4a0a92
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ement/default.nix
@@ -0,0 +1,36 @@
+{ trivialBuild
+, lib
+, fetchFromGitHub
+, curl
+, plz
+, cl-lib
+, ts
+}:
+
+trivialBuild {
+  pname = "ement";
+  version = "unstable-2021-09-16";
+
+  src = fetchFromGitHub {
+    owner = "alphapapa";
+    repo = "ement.el";
+    rev = "c07e914f077199c95b0e7941a421675c95d4687e";
+    sha256 = "sha256-kYVb2NrHYC87mY/hFUMAjb4TLJ9A2L2RrHoiAXvRaGg=";
+  };
+
+  packageRequires = [
+    plz
+    cl-lib
+    ts
+  ];
+
+  patches = [
+    ./handle-nil-images.patch
+  ];
+
+  meta = {
+    description = "Ement.el is a Matrix client for Emacs";
+    license = lib.licenses.gpl3Only;
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ement/handle-nil-images.patch b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ement/handle-nil-images.patch
new file mode 100644
index 000000000000..547fee164056
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ement/handle-nil-images.patch
@@ -0,0 +1,28 @@
+diff --git a/ement.el b/ement.el
+index c9596a7..1b33045 100644
+--- a/ement.el
++++ b/ement.el
+@@ -682,14 +682,15 @@ can cause undesirable underlining."
+   "Return a copy of IMAGE set to MAX-WIDTH and MAX-HEIGHT.
+ IMAGE should be one as created by, e.g. `create-image'."
+   ;; It would be nice if the image library had some simple functions to do this sort of thing.
+-  (let ((new-image (cl-copy-list image)))
+-    (when (fboundp 'imagemagick-types)
+-      ;; Only do this when ImageMagick is supported.
+-      ;; FIXME: When requiring Emacs 27+, remove this (I guess?).
+-      (setf (image-property new-image :type) 'imagemagick))
+-    (setf (image-property new-image :max-width) max-width
+-          (image-property new-image :max-height) max-height)
+-    new-image))
++  (when image
++    (let ((new-image (cl-copy-list image)))
++      (when (fboundp 'imagemagick-types)
++        ;; Only do this when ImageMagick is supported.
++        ;; FIXME: When requiring Emacs 27+, remove this (I guess?).
++        (setf (image-property new-image :type) 'imagemagick))
++      (setf (image-property new-image :max-width) max-width
++            (image-property new-image :max-height) max-height)
++      new-image)))
+ 
+ ;;;;; Reading/writing sessions
+ 
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ess-R-object-popup/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ess-R-object-popup/default.nix
index a92471a9493b..fa7725fbb94c 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ess-R-object-popup/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ess-R-object-popup/default.nix
@@ -1,22 +1,23 @@
-{ lib, stdenv, fetchgit }:
+{ lib
+, trivialBuild
+, fetchFromGitHub
+, emacs
+}:
 
-stdenv.mkDerivation {
-  name = "ess-R-object-popup-20130302";
+trivialBuild rec {
+  pname = "ess-R-object-popup";
+  version = "1.0";
 
-  src = fetchgit {
-    url = "https://github.com/myuhe/ess-R-object-popup.el.git";
-    rev = "7e1f601bfba72de0fda44d9c82f96028ecbb9948";
-    sha256 = "0q8pbaa6wahli6fh0kng5zmnypsxi1fr2bzs2mfk3h8vf4nikpv0";
+  src = fetchFromGitHub {
+    owner = "myuhe";
+    repo = "ess-R-object-popup.el";
+    rev = "v${version}";
+    hash = "sha256-YN8ZLXEbwTFdFfovkV2IXV9v6y/PTgCdiRQqbpRaF2E=";
   };
 
-  installPhase = ''
-    mkdir -p $out/share/emacs/site-lisp
-    cp *.el *.elc $out/share/emacs/site-lisp/
-  '';
-
   meta = {
-    description = "Popup descriptions of R objects";
     homepage = "https://github.com/myuhe/ess-R-object-popup.el";
-    platforms = lib.platforms.all;
+    description = "Popup descriptions of R objects";
+    inherit (emacs.meta) platforms;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/evil-markdown/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/evil-markdown/default.nix
index 74fc1a179219..58c542a57f4f 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/evil-markdown/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/evil-markdown/default.nix
@@ -1,46 +1,34 @@
-{ stdenv, fetchFromGitHub, emacs, emacsPackages, lib }:
+{ lib
+, trivialBuild
+, fetchFromGitHub
+, emacs
+}:
 
-let
-  runtimeDeps = with emacsPackages; [
-    evil
-    markdown-mode
-  ];
-in
-stdenv.mkDerivation {
+trivialBuild rec {
   pname = "evil-markdown";
-  version = "2020-06-01";
+  version = "0.0.0+unstable=2021-07-21";
 
   src = fetchFromGitHub {
     owner = "Somelauw";
     repo = "evil-markdown";
-    rev = "064fe9b4767470472356d20bdd08e2f30ebbc9ac";
-    sha256 = "sha256-Kt2wxG1XCFowavVWtj0urM/yURKegonpZcxTy/+CrJY=";
+    rev = "8e6cc68af83914b2fa9fd3a3b8472573dbcef477";
+    hash = "sha256-HBBuZ1VWIn6kwK5CtGIvHM1+9eiNiKPH0GUsyvpUVN8=";
   };
 
   buildInputs = [
     emacs
-  ] ++ runtimeDeps;
-
-  propagatedUserEnvPkgs = runtimeDeps;
+  ] ++ propagatedUserEnvPkgs;
 
-  buildPhase = ''
-    runHook preBuild
-    emacs -L . --batch -f batch-byte-compile *.el
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-    install -d $out/share/emacs/site-lisp
-    install *.el *.elc $out/share/emacs/site-lisp
-    runHook postInstall
-  '';
+  propagatedUserEnvPkgs = with emacs.pkgs; [
+    evil
+    markdown-mode
+  ];
 
-  meta = {
-    description = "Vim-like keybindings for markdown-mode";
+  meta = with lib; {
     homepage = "https://github.com/Somelauw/evil-markdown";
-    license = lib.licenses.gpl3Plus;
-    maintainers = with lib.maintainers; [ leungbk ];
-    platforms = emacs.meta.platforms;
+    description = "Integrates Emacs evil and markdown";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ leungbk ];
+    inherit (emacs.meta) platforms;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/font-lock-plus/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/font-lock-plus/default.nix
index 3cea9ae4ef09..019d241f507b 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/font-lock-plus/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/font-lock-plus/default.nix
@@ -1,17 +1,22 @@
-{ fetchurl, lib, trivialBuild, writeText }:
+{ lib
+, fetchFromGitHub
+, trivialBuild
+}:
 
 trivialBuild {
-  pname = "font-lock+";
-  version = "20180101.25";
+  pname = "font-lock-plus";
+  version = "208+unstable=2018-01-01";
 
-  src = fetchurl {
-    url = "https://www.emacswiki.org/emacs/download/font-lock%2b.el?revision=25";
-    sha256 = "0197yzn4hbjmw5h3m08264b7zymw63pdafph5f3yzfm50q8p7kp4";
-    name = "font-lock+.el";
+  src = fetchFromGitHub {
+    owner = "emacsmirror";
+    repo = "font-lock-plus";
+    rev = "f2c1ddcd4c9d581bd32be88fad026b49f98b6541";
+    hash = "sha256-lFmdVMXIIXZ9ZohAJw5rhxpTv017qIyzmpuKOWDdeJ4=";
   };
 
-  meta = {
-    homepage = "https://melpa.org/#/font-lock+";
-    license = lib.licenses.gpl2Plus;
+  meta = with lib; {
+    homepage = "https://github.com/emacsmirror/font-lock-plus";
+    description = "Enhancements to standard library font-lock.el";
+    license = licenses.gpl2Plus;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/git-undo/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/git-undo/default.nix
index b23d36209e61..8b353409c372 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/git-undo/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/git-undo/default.nix
@@ -2,9 +2,10 @@
 , stdenv
 , fetchFromGitHub
 , emacs
+, trivialBuild
 }:
 
-stdenv.mkDerivation {
+trivialBuild {
   pname = "git-undo";
   version = "0.0.0+unstable=2019-12-21";
 
@@ -15,28 +16,11 @@ stdenv.mkDerivation {
     sha256 = "sha256-cVkK9EF6qQyVV3uVqnBEjF8e9nEx/8ixnM8PvxqCyYE=";
   };
 
-  buildInputs = [
-    emacs
-  ];
-
-  buildPhase = ''
-    runHook preBuild
-    emacs -L . --batch -f batch-byte-compile *.el
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-    install -d $out/share/emacs/site-lisp
-    install *.el *.elc $out/share/emacs/site-lisp
-    runHook postInstall
-  '';
-
   meta = with lib; {
     homepage = "https://github.com/jwiegley/git-undo-el";
     description = "Revert region to most recent Git-historical version";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ leungbk ];
-    platforms = emacs.meta.platforms;
+    inherit (emacs.meta) platforms;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/helm-words/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/helm-words/default.nix
index 0678492500d6..1cc7a23e17d1 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/helm-words/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/helm-words/default.nix
@@ -1,23 +1,28 @@
-{ lib, stdenv, fetchgit }:
+{ lib
+, trivialBuild
+, fetchFromGitHub
+, dictionary
+, emacs
+, helm
+}:
 
-stdenv.mkDerivation {
-  name = "helm-words-20190917";
+trivialBuild rec {
+  pname = "helm-words";
+  version = "0.0.0+unstable=2019-03-12";
 
-  src = fetchgit {
-    url = "https://github.com/pronobis/helm-words.git";
+  src = fetchFromGitHub {
+    owner = "emacsmirror";
+    repo = pname;
     rev = "e6387ece1940a06695b9d910de3d90252efb8d29";
-    sha256 = "1ly0mbzlgc26fqvf7rxpmy698g0cf9qldrwrx022ar6r68l1h7xf";
+    hash = "sha256-rh8YKDLZZCUE6JnnRnFyDDyUjK+35+M2dkawR/+qwNM=";
   };
 
-  installPhase = ''
-    mkdir -p $out/share/emacs/site-lisp
-    cp *.el *.elc $out/share/emacs/site-lisp/
-  '';
+  packageRequires = [ helm dictionary ];
 
-  meta = {
-    description = "Emacs major mode for jade and stylus";
-    homepage = "https://github.com/brianc/helm-words";
-    license = lib.licenses.gpl3;
-    platforms = lib.platforms.all;
+  meta = with lib; {
+    homepage = "https://github.com/emacsmirror/helm-words";
+    description = "Helm extension for looking up words in dictionaries and thesauri";
+    license = licenses.gpl3Plus;
+    inherit (emacs.meta) platforms;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ido-ubiquitous/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ido-ubiquitous/default.nix
deleted file mode 100644
index eaa0f2c2a5b1..000000000000
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ido-ubiquitous/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv, fetchFromGitHub, emacs }:
-
-let
-  version = "3.6-4-gb659bf8";
-in
-stdenv.mkDerivation {
-  pname = "ido-ubiquitous";
-  inherit version;
-
-  src = fetchFromGitHub {
-    owner = "DarwinAwardWinner";
-    repo = "ido-ubiquitous";
-    rev = version;
-    sha256 = "06r8qpfr60gc673w881m0nplj91b6bfw77bxgl6irz1z9bp7cc4y";
-  };
-
-  buildInputs = [ emacs ];
-
-  buildPhase = ''
-    emacs -L . --batch -f batch-byte-compile *.el
-  '';
-
-  installPhase = ''
-    install -d $out/share/emacs/site-lisp
-    install *.el *.elc $out/share/emacs/site-lisp
-  '';
-}
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/isearch-plus/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/isearch-plus/default.nix
index 1c11a2abff57..c28a17743421 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/isearch-plus/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/isearch-plus/default.nix
@@ -1,10 +1,10 @@
 { lib
-, stdenv
+, trivialBuild
 , fetchFromGitHub
 , emacs
 }:
 
-stdenv.mkDerivation {
+trivialBuild {
   pname = "isearch-plus";
   version = "3434+unstable=2021-08-23";
 
@@ -15,28 +15,11 @@ stdenv.mkDerivation {
     hash = "sha256-kD+Fyps3fc5YK6ATU1nrkKHazGMYJnU2gRcpQZf6A1E=";
   };
 
-  buildInputs = [
-    emacs
-  ];
-
-  buildPhase = ''
-    runHook preBuild
-    emacs -L . --batch -f batch-byte-compile *.el
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-    install -d $out/share/emacs/site-lisp
-    install *.el *.elc $out/share/emacs/site-lisp
-    runHook postInstall
-  '';
-
   meta = with lib; {
     homepage = "https://www.emacswiki.org/emacs/IsearchPlus";
     description = "Extensions to isearch";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ leungbk AndersonTorres ];
-    platforms = emacs.meta.platforms;
+    inherit (emacs.meta) platforms;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/isearch-prop/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/isearch-prop/default.nix
index 67a4c87b95d4..067d6f4481f2 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/isearch-prop/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/isearch-prop/default.nix
@@ -1,10 +1,11 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, trivialBuild
 , emacs
 }:
 
-stdenv.mkDerivation {
+trivialBuild {
   pname = "isearch-prop";
   version = "0.0.0+unstable=2019-05-01";
 
@@ -15,28 +16,11 @@ stdenv.mkDerivation {
     hash = "sha256-A1Kt4nm7iRV9J5yaLupwiNL5g7ddZvQs79dggmqZ7Rk=";
   };
 
-  buildInputs = [
-    emacs
-  ];
-
-  buildPhase = ''
-    runHook preBuild
-    emacs -L . --batch -f batch-byte-compile *.el
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-    install -d $out/share/emacs/site-lisp
-    install *.el *.elc $out/share/emacs/site-lisp
-    runHook postInstall
-  '';
-
   meta = with lib; {
     homepage = "https://www.emacswiki.org/emacs/IsearchPlus";
     description = "Search text- or overlay-property contexts";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ leungbk ];
-    platforms = emacs.meta.platforms;
+    inherit (emacs.meta) platforms;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/jam-mode/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/jam-mode/default.nix
index 0fd698ad2c16..09b7877c9deb 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/jam-mode/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/jam-mode/default.nix
@@ -1,16 +1,23 @@
-{ trivialBuild, lib, fetchurl }:
+{ lib
+, trivialBuild
+, fetchurl
+}:
 
 trivialBuild rec {
   pname = "jam-mode";
   version = "0.3";
 
   src = fetchurl {
-    url = "https://dev.gentoo.org/~ulm/distfiles/jam-mode-${version}.el.xz";
-    sha256 = "1jchgiy2rgvnb3swr6ar72yas6pj4inpgpcq78q01q6snflmi2fh";
+    url = "https://dev.gentoo.org/~ulm/distfiles/${pname}-${version}.el.xz";
+    hash = "sha256-0IlYqbPa4AAwOpjdd20k8hqtvDhZmcz1WHa/LHx8kMk=";
   };
 
   unpackPhase = ''
+    runHook preUnpack
+
     xz -cd $src > jam-mode.el
+
+    runHook postUnpack
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/llvm-mode/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/llvm-mode/default.nix
new file mode 100644
index 000000000000..26f9e25ad665
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/llvm-mode/default.nix
@@ -0,0 +1,17 @@
+{ trivialBuild
+, llvmPackages
+}:
+
+trivialBuild {
+  pname = "llvm-mode";
+  inherit (llvmPackages.llvm) src version;
+
+  postUnpack = ''
+    sourceRoot="$sourceRoot/utils/emacs"
+  '';
+
+  meta = {
+    inherit (llvmPackages.llvm.meta) homepage license;
+    description = "Major mode for the LLVM assembler language";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
index d792793d3643..3f5dd795ccb9 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
@@ -42,67 +42,6 @@
     };
   };
 
-  agda2-mode = trivialBuild {
-    pname = "agda-mode";
-    version = pkgs.haskellPackages.Agda.version;
-
-    dontUnpack = true;
-
-    # already byte-compiled by Agda builder
-    buildPhase = ''
-      agda=`${pkgs.haskellPackages.Agda}/bin/agda-mode locate`
-      cp `dirname $agda`/*.el* .
-    '';
-
-    meta = {
-      description = "Agda2-mode for Emacs extracted from Agda package";
-      longDescription = ''
-        Wrapper packages that liberates init.el from `agda-mode locate` magic.
-        Simply add this to user profile or systemPackages and do `(require 'agda2)` in init.el.
-      '';
-      homepage = pkgs.haskellPackages.Agda.meta.homepage;
-      license = pkgs.haskellPackages.Agda.meta.license;
-    };
-  };
-
-  agda-input = self.trivialBuild {
-    pname = "agda-input";
-
-    inherit (pkgs.haskellPackages.Agda) src version;
-
-    postUnpack = "mv $sourceRoot/src/data/emacs-mode/agda-input.el $sourceRoot";
-
-    meta = {
-      description = "Standalone package providing the agda-input method without building Agda.";
-      inherit (pkgs.haskellPackages.Agda.meta) homepage license;
-    };
-  };
-
-  # may be part of MELPA in the future, see
-  # https://github.com/mlochbaum/BQN/issues/10#issuecomment-912982874
-  bqn-mode = self.trivialBuild {
-    pname = "bqn-mode";
-    version = "unstable-2021-09-04";
-
-    src = pkgs.fetchFromGitHub {
-      owner = "mlochbaum";
-      repo = "BQN";
-      rev = "e623a2fcafdf5fd6c8d31570175284805c4f34d9";
-      sha256 = "1a2lpxy3bak4724r0ns4la5d0j6484ngi73kcwp82vgbbpk7lcrp";
-    };
-
-    postUnpack = ''
-      sourceRoot="$sourceRoot/editors/emacs"
-    '';
-
-    meta = {
-      description = "Emacs mode for BQN";
-      license = lib.licenses.gpl3Only;
-      maintainers = [ lib.maintainers.sternenseemann ];
-      homepage = "https://mlochbaum.github.io/BQN/editors/index.html";
-    };
-  };
-
   ghc-mod = melpaBuild {
     pname = "ghc";
     version = pkgs.haskellPackages.ghc-mod.version;
@@ -154,21 +93,6 @@
     };
   };
 
-  llvm-mode = trivialBuild {
-    pname = "llvm-mode";
-    inherit (pkgs.llvmPackages.llvm) src version;
-
-    dontConfigure = true;
-    buildPhase = ''
-      cp utils/emacs/*.el .
-    '';
-
-    meta = {
-      inherit (pkgs.llvmPackages.llvm.meta) homepage license;
-      description = "Major mode for the LLVM assembler language.";
-    };
-  };
-
   matrix-client = let
     rev = "d2ac55293c96d4c95971ed8e2a3f6f354565c5ed";
   in melpaBuild
@@ -224,37 +148,17 @@
 
   };
 
-  ott-mode = self.trivialBuild {
-    pname = "ott-mod";
+  agda2-mode = callPackage ./agda2-mode { };
 
-    inherit (pkgs.ott) src version;
+  agda-input = callPackage ./agda-input{ };
 
-    postUnpack = "mv $sourceRoot/emacs/ott-mode.el $sourceRoot";
+  bqn-mode = callPackage ./bqn-mode { };
 
-    meta = {
-      description = "Standalone package providing ott-mode without building ott and with compiled bytecode.";
-      inherit (pkgs.haskellPackages.Agda.meta) homepage license;
-    };
-  };
+  llvm-mode = callPackage ./llvm-mode { };
 
-  urweb-mode = self.trivialBuild {
-    pname = "urweb-mode";
+  ott-mode = callPackage ./ott-mode { };
 
-    inherit (pkgs.urweb) src version;
-
-    packageRequires = [
-      self.cl-lib
-      self.flycheck
-    ];
-
-    postUnpack = "sourceRoot=$sourceRoot/src/elisp";
-
-    meta = {
-      description = "Major mode for editing Ur/Web";
-      inherit (pkgs.urweb.meta) license homepage;
-      maintainers = [ lib.maintainers.sternenseemann ];
-    };
-  };
+  urweb-mode = callPackage ./urweb-mode { };
 
   # Packages made the classical callPackage way
 
@@ -262,8 +166,12 @@
 
   ebuild-mode = callPackage ./ebuild-mode { };
 
+  evil-markdown = callPackage ./evil-markdown { };
+
   emacspeak = callPackage ./emacspeak { };
 
+  ement = callPackage ./ement { };
+
   ess-R-object-popup = callPackage ./ess-R-object-popup { };
 
   font-lock-plus = callPackage ./font-lock-plus { };
@@ -280,10 +188,10 @@
 
   nano-theme = callPackage ./nano-theme { };
 
-  org-mac-link = callPackage ./org-mac-link { };
-
   perl-completion = callPackage ./perl-completion { };
 
+  plz = callPackage ./plz { };
+
   pod-mode = callPackage ./pod-mode { };
 
   power-mode = callPackage ./power-mode { };
@@ -298,15 +206,12 @@
 
   youtube-dl = callPackage ./youtube-dl { };
 
-  zeitgeist = callPackage ./zeitgeist { };
-
   # From old emacsPackages (pre emacsPackagesNg)
   cedet = callPackage ./cedet { };
   cedille = callPackage ./cedille { cedille = pkgs.cedille; };
   color-theme-solarized = callPackage ./color-theme-solarized { };
   session-management-for-emacs = callPackage ./session-management-for-emacs { };
   hsc3-mode = callPackage ./hsc3 { };
-  ido-ubiquitous = callPackage ./ido-ubiquitous { };
   prolog-mode = callPackage ./prolog { };
   rect-mark = callPackage ./rect-mark { };
   sunrise-commander = callPackage ./sunrise-commander { };
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/mu4e-patch/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/mu4e-patch/default.nix
deleted file mode 100644
index 4a436339ebc4..000000000000
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/mu4e-patch/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv, fetchFromGitHub, emacs, lib }:
-
-stdenv.mkDerivation {
-  pname = "mu4e-patch";
-  version = "2019-05-09";
-
-  src = fetchFromGitHub {
-    owner = "seanfarley";
-    repo = "mu4e-patch";
-    rev = "522da46c1653b1cacc79cde91d6534da7ae9517d";
-    sha256 = "sha256-1lV4dDuCdyCUXi/In2DzYJPEHuAc9Jfbz2ZecNZwn4I=";
-  };
-
-  buildInputs = [
-    emacs
-  ];
-
-  buildPhase = ''
-    runHook preBuild
-    emacs -L . --batch -f batch-byte-compile *.el
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-    install -d $out/share/emacs/site-lisp
-    install *.el *.elc $out/share/emacs/site-lisp
-    runHook postInstall
-  '';
-
-  meta = {
-    description = "Colorize patch emails in mu4e";
-    homepage = "https://github.com/seanfarley/mu4e-patch";
-    license = lib.licenses.gpl3Plus;
-    maintainers = with lib.maintainers; [ leungbk ];
-    platforms = emacs.meta.platforms;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/nano-theme/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/nano-theme/default.nix
index 8034f41a72d6..3bdf1a75f430 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/nano-theme/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/nano-theme/default.nix
@@ -1,27 +1,20 @@
 { lib
-, stdenv
+, trivialBuild
 , fetchFromGitHub
 , emacs
 }:
 
-stdenv.mkDerivation rec {
+trivialBuild rec {
   pname = "nano-theme";
-  version = "2021-06-05";
+  version = "0.0.0+unstable=2021-06-29";
 
   src = fetchFromGitHub {
     owner = "rougier";
     repo  = pname;
-    rev = "99ff1c5e78296a073c6e63b966045e0d83a136e7";
-    hash = "sha256-IDVnl4J4hx2mlLaiA+tKxxRGcIyBULr2HBeY/GMHD90=";
+    rev = "4a231787a32b3019f9f0abb3511a112fd54bf685";
+    hash = "sha256-eco9BMKLhPuwFJb5QesbM6g3cZv3FdVvQ9fXq6D3Ifc=";
   };
 
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/emacs/site-lisp
-    install *.el $out/share/emacs/site-lisp
-    runHook postInstall
-  '';
-
   meta = {
     homepage = "https://github.com/rougier/nano-theme";
     description = "GNU Emacs / N Λ N O Theme";
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/org-mac-link/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/org-mac-link/default.nix
deleted file mode 100644
index a1328d8e8f42..000000000000
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/org-mac-link/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib, stdenv, fetchurl, emacs }:
-
-stdenv.mkDerivation {
-  pname = "org-mac-link";
-  version = "1.2";
-
-  src = fetchurl {
-    url = "https://raw.githubusercontent.com/stuartsierra/org-mode/master/contrib/lisp/org-mac-link.el";
-    sha256 = "1gkzlfbhg289r1hbqd25szan1wizgk6s99h9xxjip5bjv0jywcx5";
-  };
-
-  dontUnpack = true;
-
-  buildInputs = [ emacs ];
-
-  buildPhase = ''
-    cp $src org-mac-link.el
-    emacs --batch -f batch-byte-compile org-mac-link.el
-  '';
-
-  installPhase = ''
-    install -d $out/share/emacs/site-lisp
-    install org-mac-link.el $out/share/emacs/site-lisp
-  '';
-
-  meta = {
-    description = "Insert org-mode links to items selected in various Mac apps";
-    homepage = "https://orgmode.org/worg/org-contrib/org-mac-link.html";
-    license = lib.licenses.gpl3;
-    platforms = lib.platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ott-mode/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ott-mode/default.nix
new file mode 100644
index 000000000000..6eeead468ff2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/ott-mode/default.nix
@@ -0,0 +1,19 @@
+{ trivialBuild
+, ott
+, haskellPackages
+}:
+
+trivialBuild {
+  pname = "ott-mode";
+
+  inherit (ott) src version;
+
+  postUnpack = ''
+    mv $sourceRoot/emacs/ott-mode.el $sourceRoot
+  '';
+
+  meta = {
+    description = "Emacs ott mode (from ott sources)";
+    inherit (haskellPackages.Agda.meta) homepage license;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/plz/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/plz/default.nix
new file mode 100644
index 000000000000..9992fb877a9f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/plz/default.nix
@@ -0,0 +1,23 @@
+{ trivialBuild, lib, fetchFromGitHub, curl }:
+
+trivialBuild {
+  pname = "plz";
+  version = "unstable-2021-08-22";
+
+  src = fetchFromGitHub {
+    owner = "alphapapa";
+    repo = "plz.el";
+    rev = "7e456638a651bab3a814e3ea81742dd917509cbb";
+    sha256 = "sha256-8kn9ax1AVF6f9iCTqvVeJZihs03pYAhLjUDooG/ubxY=";
+  };
+
+  postPatch = ''
+    substituteInPlace ./plz.el --replace 'plz-curl-program "curl"' 'plz-curl-program "${curl}/bin/curl"'
+  '';
+
+  meta = {
+    description = "plz is an HTTP library for Emacs";
+    license = lib.licenses.gpl3Only;
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/power-mode/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/power-mode/default.nix
index 035c906c8ab3..75015a959c2b 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/power-mode/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/power-mode/default.nix
@@ -1,12 +1,12 @@
 { lib
-, stdenv
+, trivialBuild
 , fetchFromGitHub
 , emacs
 }:
 
-stdenv.mkDerivation rec {
+trivialBuild rec {
   pname = "power-mode";
-  version = "2021-06-06";
+  version = "0.0.0+unstable=2021-06-06";
 
   src = fetchFromGitHub {
     owner = "elizagamedev";
@@ -15,15 +15,8 @@ stdenv.mkDerivation rec {
     hash = "sha256-Wy8o9QTWqvH9cP7xsTpF5QSd4mWNIPXJTadoADKeHWY=";
   };
 
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/emacs/site-lisp
-    install *.el $out/share/emacs/site-lisp
-    runHook postInstall
-  '';
-
   meta = {
-    homepage = "https://github.com/rougier/nano-theme";
+    homepage = "https://github.com/elizagamedev/power-mode.el";
     description = "Imbue Emacs with power!";
     inherit (emacs.meta) platforms;
   };
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/prolog/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/prolog/default.nix
index deac73a194ed..24df2b0d5dec 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/prolog/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/prolog/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://bruda.ca/_media/emacs/prolog.el";
-    sha256 = "oCMzks4xuor8Il8Ll8PXh1zIvMl5qN0RCFJ9yKiHOHU=";
+    sha256 = "ZzIDFQWPq1vI9z3btgsHgn0axN6uRQn9Tt8TnqGybOk=";
   };
 
   buildCommand = ''
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/railgun/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/railgun/default.nix
index 240a2f29edf3..e49925e057ce 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/railgun/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/railgun/default.nix
@@ -1,22 +1,25 @@
-{ lib, stdenv, fetchgit }:
+{ lib
+, trivialBuild
+, fetchFromGitHub
+, emacs
+}:
 
-stdenv.mkDerivation {
-  name = "railgun-2012-10-17";
+trivialBuild {
+  pname = "railgun";
+  version= "0.0.0+unstable=2012-10-17";
 
-  src = fetchgit {
-    url = "https://github.com/mbriggs/railgun.el.git";
+  src = fetchFromGitHub {
+    owner = "mbriggs";
+    repo = "railgun.el";
     rev = "66aaa1b091baef53a69d0d7425f48d184b865fb8";
-    sha256 = "00x09vjd3jz5f73qkf5v1y402zn8vl8dsyfwlq9z646p18ba7gyh";
+    hash = "sha256-0L+jFgrXEPMTptx53RDdyH4BiA+7uInHceXL0eROoAM=";
   };
 
-  installPhase = ''
-    mkdir -p $out/share/emacs/site-lisp
-    cp *.el *.elc $out/share/emacs/site-lisp/
-  '';
+  buildInputs = [ emacs ];
 
-  meta = {
-    description = "Propel yourself through a rails project with the power of magnets";
+  meta = with lib; {
     homepage = "https://github.com/mbriggs/railgun.el";
-    platforms = lib.platforms.all;
+    description = "Propel yourself through a rails project with the power of magnets";
+    inherit (emacs.meta) platforms;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/rect-mark/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/rect-mark/default.nix
index 2214b1448d30..aef7fbf8c9a0 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/rect-mark/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/rect-mark/default.nix
@@ -1,35 +1,26 @@
-{ lib, stdenv, fetchurl, emacs }:
+{ lib
+, trivialBuild
+, fetchFromGitHub
+, emacs
+ }:
 
-stdenv.mkDerivation {
+trivialBuild rec {
   pname = "rect-mark";
   version = "1.4";
 
-  src = fetchurl {
-    url = "http://emacswiki.org/emacs/download/rect-mark.el";
-    sha256 = "0pyyg53z9irh5jdfvh2qp4pm8qrml9r7lh42wfmdw6c7f56qryh8";
+  src = fetchFromGitHub {
+    owner = "emacsmirror";
+    repo = pname;
+    rev = version;
+    hash = "sha256-/8T1VTYkKUxlNWXuuS54S5jpl4UxJBbgSuWc17a/VyM=";
   };
 
-  dontUnpack = true;
-
   buildInputs = [ emacs ];
 
-  buildPhase = ''
-    cp $src rect-mark.el
-    emacs --batch -f batch-byte-compile rect-mark.el
-  '';
-
-  installPhase = ''
-    runHook preInstall
-    install -d $out/share/emacs/site-lisp
-    install rect-mark.el* $out/share/emacs/site-lisp
-    runHook postInstall
-  '';
-
-  meta = {
-    description = "Mark a rectangle of text with highlighting";
+  meta = with lib; {
     homepage = "http://emacswiki.org/emacs/RectangleMark";
-    license = lib.licenses.gpl2Plus;
-
-    platforms = lib.platforms.all;
+    description = "Mark a rectangle of text with highlighting";
+    license = licenses.gpl2Plus;
+    inherit (emacs.meta) platforms;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/sunrise-commander/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/sunrise-commander/default.nix
index 095d79bdf62b..09889593fe69 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/sunrise-commander/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/sunrise-commander/default.nix
@@ -1,10 +1,10 @@
 { lib
-, stdenv
+, trivialBuild
 , fetchFromGitHub
 , emacs
 }:
 
-stdenv.mkDerivation rec {
+trivialBuild rec {
   pname = "sunrise-commander";
   version = "0.0.0+unstable=2021-07-22";
 
@@ -19,19 +19,6 @@ stdenv.mkDerivation rec {
     emacs
   ];
 
-  buildPhase = ''
-    runHook preBuild
-    emacs -q --no-splash --directory=. --batch --file=batch-byte-compile *.el
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/emacs/site-lisp
-    install *.el* $out/share/emacs/site-lisp
-    runHook postInstall
-  '';
-
   meta = with lib; {
     homepage = "https://github.com/sunrise-commander/sunrise-commander/";
     description = "Orthodox (two-pane) file manager for Emacs";
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/tramp/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/tramp/default.nix
index 72dbf7a0f476..fee2cca6926a 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/tramp/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/tramp/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tramp";
-  version = "2.5.0";
+  version = "2.5.1";
 
   src = fetchurl {
     url = "mirror://gnu/tramp/${pname}-${version}.tar.gz";
-    sha256 = "sha256-w+6HJA8kFb75Z+7vM1zDnzOnkSSIXKnLVyCcEh+nMGY=";
+    hash = "sha256-+jjWBcj2dP9Xyj4dzpAX86KnajVa9eFDcjD9xTw6vks=";
   };
 
   buildInputs = [
@@ -19,10 +19,11 @@ stdenv.mkDerivation rec {
     texinfo
   ];
 
-  meta = {
+  meta = with lib; {
     homepage = "https://www.gnu.org/software/tramp";
-    description = "Transparently access remote files from Emacs. Newer versions than built-in.";
-    license = lib.licenses.gpl3Plus;
+    description = "Transparently access remote files from Emacs (latest version)";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
     inherit (emacs.meta) platforms;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/urweb-mode/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/urweb-mode/default.nix
new file mode 100644
index 000000000000..6f7e822d81d3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/urweb-mode/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, trivialBuild
+, urweb
+, cl-lib
+, flycheck
+}:
+
+trivialBuild {
+  pname = "urweb-mode";
+
+  inherit (urweb) src version;
+
+  packageRequires = [
+    cl-lib
+    flycheck
+  ];
+
+  postUnpack = ''
+    sourceRoot=$sourceRoot/src/elisp
+  '';
+
+  meta = {
+    description = "Major mode for editing Ur/Web";
+    inherit (urweb.meta) license homepage;
+    maintainers = [ lib.maintainers.sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/youtube-dl/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/youtube-dl/default.nix
index c99693463a64..b0df381b5f95 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/youtube-dl/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/youtube-dl/default.nix
@@ -1,8 +1,13 @@
-{ stdenv, fetchFromGitHub, emacs, lib }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, trivialBuild
+, emacs
+}:
 
-stdenv.mkDerivation {
+trivialBuild {
   pname = "youtube-dl";
-  version = "2018-10-12";
+  version = "0.0.0+unstable=2018-10-12";
 
   src = fetchFromGitHub {
     owner = "skeeto";
@@ -13,24 +18,11 @@ stdenv.mkDerivation {
 
   buildInputs = [ emacs ];
 
-  buildPhase = ''
-    runHook preBuild
-    emacs -L . --batch -f batch-byte-compile *.el
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-    install -d $out/share/emacs/site-lisp
-    install *.el *.elc $out/share/emacs/site-lisp
-    runHook postInstall
-  '';
-
-  meta = {
-    description = "Emacs frontend to the youtube-dl utility";
+  meta = with lib; {
+    description = "Emacs youtube-dl download manager";
     homepage = "https://github.com/skeeto/youtube-dl-emacs";
-    license = lib.licenses.unlicense;
-    maintainers = with lib.maintainers; [ leungbk ];
-    platforms = emacs.meta.platforms;
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ leungbk ];
+    inherit (emacs.meta) platforms;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/zeitgeist/default.nix b/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/zeitgeist/default.nix
deleted file mode 100644
index 67bf7b500ff7..000000000000
--- a/nixpkgs/pkgs/applications/editors/emacs/elisp-packages/zeitgeist/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, stdenv, fetchurl, emacs }:
-
-stdenv.mkDerivation {
-  name = "zeitgeist-20120221";
-
-  dontUnpack = true;
-
-  src = fetchurl {
-    url = "https://raw.githubusercontent.com/alexmurray/dotfiles/master/.emacs.d/vendor/zeitgeist.el";
-    sha256 = "0fssx3lp8ar3b1ichbagir7z17habv367l7zz719ipycr24rf1nw";
-  };
-
-  buildInputs = [ emacs ];
-
-  installPhase = ''
-    mkdir -p $out/share/emacs/site-lisp
-    cp $src $out/share/emacs/site-lisp/zeitgeist.el
-  '';
-
-  meta = {
-    description = "Integreate Emacs with Zeitgeist";
-    homepage = "http://zeitgeist-project.com/";
-    platforms = lib.platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/editors/neovim/tests.nix b/nixpkgs/pkgs/applications/editors/neovim/tests.nix
index 202b18efb8cf..085fceac1108 100644
--- a/nixpkgs/pkgs/applications/editors/neovim/tests.nix
+++ b/nixpkgs/pkgs/applications/editors/neovim/tests.nix
@@ -87,10 +87,30 @@ rec {
   nvim_with_plug = neovim.override {
     extraName = "-with-plug";
     configure.plug.plugins = with pkgs.vimPlugins; [
-      vim-go
+      base16-vim
     ];
+    configure.customRC = ''
+      color base16-tomorrow-night
+      set background=dark
+    '';
   };
 
+  run_nvim_with_plug = runTest nvim_with_plug ''
+    export HOME=$TMPDIR
+    ${nvim_with_plug}/bin/nvim -i NONE -c 'color base16-tomorrow-night'  +quit!
+  '';
+
+
+  # check that the vim-doc hook correctly generates the tag
+  # we know for a fact packer has a doc folder
+  checkForTags = vimPlugins.packer-nvim.overrideAttrs(oldAttrs: {
+    doInstallCheck = true;
+    installCheckPhase = ''
+      [ -f $out/doc/tags ]
+    '';
+  });
+
+
   # nixpkgs should detect that no wrapping is necessary
   nvimShouldntWrap = wrapNeovim2 "-should-not-wrap" nvimAutoDisableWrap;
 
diff --git a/nixpkgs/pkgs/applications/editors/netbeans/default.nix b/nixpkgs/pkgs/applications/editors/netbeans/default.nix
index 00497eebacf9..ae538575367d 100644
--- a/nixpkgs/pkgs/applications/editors/netbeans/default.nix
+++ b/nixpkgs/pkgs/applications/editors/netbeans/default.nix
@@ -3,7 +3,7 @@
 }:
 
 let
-  version = "12.4";
+  version = "12.5";
   desktopItem = makeDesktopItem {
     name = "netbeans";
     exec = "netbeans";
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   inherit version;
   src = fetchurl {
     url = "mirror://apache/netbeans/netbeans/${version}/netbeans-${version}-bin.zip";
-    sha512 = "2jwfyq5ik0pwjd61mh0dhyw4xgpzfmgsjc947xg84n7xmns4mzgb8k5ggrss6hgqiqk7jl3psv7v837c2dxk1xdrdnkzs31cg9symbs";
+    sha512 = "3yagspb2clcvd87a9vnpwd64w3afm4kyprqyjccpckysh4php5vhf7dfza3zhs4yzmkikc2pfs7470w54mxz9rcmaixh23h3hlgd1ii";
   };
 
   buildCommand = ''
diff --git a/nixpkgs/pkgs/applications/editors/rstudio/default.nix b/nixpkgs/pkgs/applications/editors/rstudio/default.nix
index 76d9c2e594b2..da7047b90254 100644
--- a/nixpkgs/pkgs/applications/editors/rstudio/default.nix
+++ b/nixpkgs/pkgs/applications/editors/rstudio/default.nix
@@ -135,7 +135,7 @@ mkDerivation rec {
     { description = "Set of integrated tools for the R language";
       homepage = "https://www.rstudio.com/";
       license = licenses.agpl3;
-      maintainers = with maintainers; [ ehmry changlinli ciil ];
+      maintainers = with maintainers; [ changlinli ciil ];
       platforms = platforms.linux;
     };
 }
diff --git a/nixpkgs/pkgs/applications/editors/sigil/default.nix b/nixpkgs/pkgs/applications/editors/sigil/default.nix
index d3d6e97f3fe2..adbbc05ccce5 100644
--- a/nixpkgs/pkgs/applications/editors/sigil/default.nix
+++ b/nixpkgs/pkgs/applications/editors/sigil/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "sigil";
-  version = "1.5.1";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     repo = "Sigil";
     owner = "Sigil-Ebook";
     rev = version;
-    sha256 = "sha256-BqNaIsUJE0KmFcmTjJERbclzaRe1dMjareWxUye2se0=";
+    sha256 = "sha256-a1gstR7qHbzQ3GZ0g/lxUxcHeZ5QgJIvhCV37tqlVfA=";
   };
 
   pythonPath = with python3Packages; [ lxml ];
diff --git a/nixpkgs/pkgs/applications/editors/texmaker/default.nix b/nixpkgs/pkgs/applications/editors/texmaker/default.nix
index 265783fe878f..4c176bab057d 100644
--- a/nixpkgs/pkgs/applications/editors/texmaker/default.nix
+++ b/nixpkgs/pkgs/applications/editors/texmaker/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "texmaker";
-  version = "5.1.1";
+  version = "5.1.2";
 
   src = fetchurl {
     url = "http://www.xm1math.net/texmaker/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-gANJknSWIMN+B0uAOtPil8EbjyWt4E+xOxOseR87Dd4=";
+    sha256 = "sha256-UmiW8sGuVhEw7seq6BW53Nqejut3K2VB0NyUzpGnEEQ=";
   };
 
   buildInputs = [ qtbase qtscript poppler zlib qtwebengine ];
diff --git a/nixpkgs/pkgs/applications/editors/vim/common.nix b/nixpkgs/pkgs/applications/editors/vim/common.nix
index 71e7be66b1eb..89d49f5e6285 100644
--- a/nixpkgs/pkgs/applications/editors/vim/common.nix
+++ b/nixpkgs/pkgs/applications/editors/vim/common.nix
@@ -1,12 +1,12 @@
 { lib, fetchFromGitHub }:
 rec {
-  version = "8.2.2567";
+  version = "8.2.3337";
 
   src = fetchFromGitHub {
     owner = "vim";
     repo = "vim";
     rev = "v${version}";
-    sha256 = "sha256-FS3TZX7FKnnNpGYKbng2LIfWA9z2jqg7d2HC6t3xYTU=";
+    sha256 = "sha256-iwSGcLeqXH0bVIXEI5OnotG88Uv8ntycisD9EcHjz/c=";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/editors/vim/configurable.nix b/nixpkgs/pkgs/applications/editors/vim/configurable.nix
index 5e1d9dc9cb8b..01561f4c2722 100644
--- a/nixpkgs/pkgs/applications/editors/vim/configurable.nix
+++ b/nixpkgs/pkgs/applications/editors/vim/configurable.nix
@@ -93,6 +93,16 @@ in stdenv.mkDerivation rec {
     "--disable-nextaf_check"
     "--disable-carbon_check"
     "--disable-gtktest"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "vim_cv_toupper_broken=no"
+    "--with-tlib=ncurses"
+    "vim_cv_terminfo=yes"
+    "vim_cv_tgetent=zero" # it does on native anyway
+    "vim_cv_tty_group=tty"
+    "vim_cv_tty_mode=0660"
+    "vim_cv_getcwd_broken=no"
+    "vim_cv_stat_ignores_slash=yes"
+    "vim_cv_memmove_handles_overlap=yes"
   ]
     ++ lib.optional (guiSupport == "gtk2" || guiSupport == "gtk3") "--enable-gui=${guiSupport}"
   ++ lib.optional stdenv.isDarwin
diff --git a/nixpkgs/pkgs/applications/editors/vim/default.nix b/nixpkgs/pkgs/applications/editors/vim/default.nix
index 2cda81c2588a..d8167f609879 100644
--- a/nixpkgs/pkgs/applications/editors/vim/default.nix
+++ b/nixpkgs/pkgs/applications/editors/vim/default.nix
@@ -33,8 +33,6 @@ stdenv.mkDerivation {
     "vim_cv_tty_mode=0660"
     "vim_cv_getcwd_broken=no"
     "vim_cv_stat_ignores_slash=yes"
-    "ac_cv_sizeof_int=4"
-    "vim_cv_memmove_handles_overlap=yes"
     "vim_cv_memmove_handles_overlap=yes"
   ];
 
diff --git a/nixpkgs/pkgs/applications/editors/vscode/generic.nix b/nixpkgs/pkgs/applications/editors/vscode/generic.nix
index 4363f83ba037..7a3f34828ee2 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/generic.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/generic.nix
@@ -7,6 +7,9 @@
 # Populate passthru.tests
 , tests
 
+# needed to fix "Save as Root"
+, nodePackages, bash
+
 # Attributes inherit from specific versions
 , version, src, meta, sourceRoot
 , executableName, longName, shortName, pname, updateScript
@@ -108,6 +111,22 @@ let
       )
     '';
 
+    # See https://github.com/NixOS/nixpkgs/issues/49643#issuecomment-873853897
+    # linux only because of https://github.com/NixOS/nixpkgs/issues/138729
+    postPatch = lib.optionalString stdenv.isLinux ''
+      # this is a fix for "save as root" functionality
+      packed="resources/app/node_modules.asar"
+      unpacked="resources/app/node_modules"
+      ${nodePackages.asar}/bin/asar extract "$packed" "$unpacked"
+      substituteInPlace $unpacked/sudo-prompt/index.js \
+        --replace "/usr/bin/pkexec" "/run/wrappers/bin/pkexec" \
+        --replace "/bin/bash" "${bash}/bin/bash"
+      rm -rf "$packed"
+
+      # this fixes bundled ripgrep
+      chmod +x resources/app/node_modules/vscode-ripgrep/bin/rg
+    '';
+
     inherit meta;
   };
 
diff --git a/nixpkgs/pkgs/applications/editors/vscode/vscode.nix b/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
index e6a5a9d5dca7..a9a9fcdf7b4c 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
@@ -14,17 +14,17 @@ let
   archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "0g49765pnimh107pw3q7dlgd6jcmr5gagsvxrdx8i93mbxb0xm0c";
-    x86_64-darwin = "1837fcpllblm970jxsal0ahxsnjmsgydy6g6qn51hp7f797gi7zb";
-    aarch64-linux = "1bpmgv6hjyb7jl9v8qyqiyr0brl4xq3wnls2v9hirja6ls1x14cx";
-    aarch64-darwin = "0qksfscbiyr2ynw3j86g8wm7myyabkjwx03ik3z6rrv7dffb5yii";
-    armv7l-linux = "063p2wy1wl57p43f3md0wp2d981nnb650hyqs9rgqm4mlk2s168g";
+    x86_64-linux = "0ma8pysww4r3p73rf94wddxk2ar091yw8mk1gi9jawiqvb9ksx0m";
+    x86_64-darwin = "008v7hxv71bvfp52wfx3sg97s54bn2klvy5xfjh48wcaka10vsj0";
+    aarch64-linux = "1wi5bmjdjfy1la3lwb3c389cjbn4q12j1214vna9214d8if37dyv";
+    aarch64-darwin = "14v0gq4kj0lxa6pwi7nbdpw0l25yfcqydigfzhmwrp8ipbnma62k";
+    armv7l-linux = "0h94gzwxknlvfy9gcd0zq4qsjmr9zr22adbfrqm1gvv1aksmgm4b";
   }.${system};
 in
   callPackage ./generic.nix rec {
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.60.0";
+    version = "1.60.2";
     pname = "vscode";
 
     executableName = "code" + lib.optionalString isInsiders "-insiders";
diff --git a/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix b/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
index 27b698c45ba8..fb2417389652 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
@@ -13,10 +13,10 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "1l3khnqb8icapnwk4pr4s639dqsvjy1k51km2p9ywnrjdg9byc12";
-    x86_64-darwin = "1lb63rz9mzcw5yg3cqi022m1ldvmbxz5z70axc9n6dci8aals663";
-    aarch64-linux = "0c0rxzhayklgnaf0r4hj6rwdh5qbb449vi5ja0asfyni4k2nalr5";
-    armv7l-linux = "0xs8wsad64cni8vpzfh2aqgdsnsy4hwc25msl79prvh17794k8jy";
+    x86_64-linux = "03z6wpzbvf046sl1mjvvcshy5czvr4bq2f3ajlr8bj39y9df93h9";
+    x86_64-darwin = "0cs5ikf5dxkg9qkyaq75h0rypil80sk6zmbb0s63191gj6l569yl";
+    aarch64-linux = "05ivgn72v05yy3a9qly4qx0qpyjd2r3ygdw978zc8z09694g5x3i";
+    armv7l-linux = "044izh9ap5s50k796zjcfk0p997b7sfryshp4gaxh3yf5qs0w7l9";
   }.${system};
 
   sourceRoot = {
@@ -31,7 +31,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.60.0";
+    version = "1.60.1";
     pname = "vscodium";
 
     executableName = "codium";