Add mu4e epkgs patch and use it
This commit is contained in:
parent
f43162eed7
commit
8eb59c601f
2 changed files with 143 additions and 2 deletions
142
patches/253438.patch
Normal file
142
patches/253438.patch
Normal file
|
@ -0,0 +1,142 @@
|
|||
diff --git a/nixos/doc/manual/release-notes/rl-2311.section.md b/nixos/doc/manual/release-notes/rl-2311.section.md
|
||||
index 3e20cc438969a..f13bfd2f9794d 100644
|
||||
--- a/nixos/doc/manual/release-notes/rl-2311.section.md
|
||||
+++ b/nixos/doc/manual/release-notes/rl-2311.section.md
|
||||
@@ -79,6 +79,8 @@
|
||||
|
||||
- `pass` now does not contain `password-store.el`. Users should get `password-store.el` from Emacs lisp package set `emacs.pkgs.password-store`.
|
||||
|
||||
+- `mu` now does not install `mu4e` files by default. Users should get `mu4e` from Emacs lisp package set `emacs.pkgs.mu4e`.
|
||||
+
|
||||
- `mariadb` now defaults to `mariadb_1011` instead of `mariadb_106`, meaning the default version was upgraded from 10.6.x to 10.11.x. See the [upgrade notes](https://mariadb.com/kb/en/upgrading-from-mariadb-10-6-to-mariadb-10-11/) for potential issues.
|
||||
|
||||
- `getent` has been moved from `glibc`'s `bin` output to its own dedicated output, reducing closure size for many dependents. Dependents using the `getent` alias should not be affected; others should move from using `glibc.bin` or `getBin glibc` to `getent` (which also improves compatibility with non-glibc platforms).
|
||||
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
|
||||
index 5bb88c835610c..0f28ed8f8f028 100644
|
||||
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
|
||||
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
|
||||
@@ -61,6 +61,8 @@ in
|
||||
_map = self.map;
|
||||
};
|
||||
|
||||
+ mu4e = callPackage ./manual-packages/mu4e { };
|
||||
+
|
||||
ott-mode = callPackage ./manual-packages/ott-mode { };
|
||||
|
||||
perl-completion = callPackage ./manual-packages/perl-completion { };
|
||||
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/mu4e/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/mu4e/default.nix
|
||||
new file mode 100644
|
||||
index 0000000000000..81fd973ecbd95
|
||||
--- /dev/null
|
||||
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/mu4e/default.nix
|
||||
@@ -0,0 +1,33 @@
|
||||
+{ elpaBuild, mu }:
|
||||
+
|
||||
+let
|
||||
+ pname = "mu4e";
|
||||
+ version = mu.mu4e.version;
|
||||
+in
|
||||
+elpaBuild {
|
||||
+ inherit pname version;
|
||||
+
|
||||
+ src = mu.mu4e;
|
||||
+
|
||||
+ propagatedUserEnvPkgs = [ mu ];
|
||||
+
|
||||
+ dontUnpack = false;
|
||||
+
|
||||
+ # prepare a multi-file package tar archive according to info
|
||||
+ # "(elisp) Multi-file Packages" for elpaBuild to install
|
||||
+ postUnpack = ''
|
||||
+ pushd mu-*-mu4e
|
||||
+ local content_directory=${pname}-${version}
|
||||
+ mkdir $content_directory
|
||||
+ cp --verbose share/emacs/site-lisp/mu4e/*.el $content_directory/
|
||||
+ rm --verbose --force $content_directory/mu4e-autoloads.el
|
||||
+ cp --verbose share/info/* $content_directory/
|
||||
+ src=$PWD/$content_directory.tar
|
||||
+ tar --create --verbose --file=$src $content_directory
|
||||
+ popd
|
||||
+ '';
|
||||
+
|
||||
+ meta = mu.meta // {
|
||||
+ description = "A full-featured e-mail client";
|
||||
+ };
|
||||
+}
|
||||
diff --git a/pkgs/tools/networking/mu/default.nix b/pkgs/tools/networking/mu/default.nix
|
||||
index 06083f8e0fae7..a46fc526e6958 100644
|
||||
--- a/pkgs/tools/networking/mu/default.nix
|
||||
+++ b/pkgs/tools/networking/mu/default.nix
|
||||
@@ -10,12 +10,15 @@
|
||||
, gmime3
|
||||
, texinfo
|
||||
, xapian
|
||||
+, fetchpatch
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "mu";
|
||||
version = "1.10.7";
|
||||
|
||||
+ outputs = [ "out" "mu4e" ];
|
||||
+
|
||||
src = fetchFromGitHub {
|
||||
owner = "djcb";
|
||||
repo = "mu";
|
||||
@@ -23,6 +26,14 @@ stdenv.mkDerivation rec {
|
||||
hash = "sha256-x1TsyTOK5U6/Y3QInm+XQ7T32X49iwa+4UnaHdiyqCI=";
|
||||
};
|
||||
|
||||
+ patches = [
|
||||
+ (fetchpatch {
|
||||
+ name = "add-mu4e-pkg.el";
|
||||
+ url = "https://github.com/djcb/mu/commit/00f7053d51105eea0c72151f1a8cf0b6d8478e4e.patch";
|
||||
+ hash = "sha256-21c7djmYTcqyyygqByo9vu/GsH8WMYcq8NOAvJsS5AQ=";
|
||||
+ })
|
||||
+ ];
|
||||
+
|
||||
postPatch = ''
|
||||
# Fix mu4e-builddir (set it to $out)
|
||||
substituteInPlace mu4e/mu4e-config.el.in \
|
||||
@@ -31,17 +42,23 @@ stdenv.mkDerivation rec {
|
||||
--replace "/bin/rm" "${coreutils}/bin/rm"
|
||||
'';
|
||||
|
||||
- # AOT native-comp, mostly copied from pkgs/build-support/emacs/generic.nix
|
||||
- postInstall = lib.optionalString (emacs.withNativeCompilation or false) ''
|
||||
- mkdir -p $out/share/emacs/native-lisp
|
||||
- export EMACSLOADPATH=$out/share/emacs/site-lisp/mu4e:
|
||||
- export EMACSNATIVELOADPATH=$out/share/emacs/native-lisp:
|
||||
+ postInstall = ''
|
||||
+ rm --verbose $mu4e/share/emacs/site-lisp/mu4e/*.elc
|
||||
+ '';
|
||||
|
||||
- find $out/share/emacs -type f -name '*.el' -print0 \
|
||||
- | xargs -0 -I {} -n 1 -P $NIX_BUILD_CORES sh -c \
|
||||
- "emacs --batch --eval '(setq large-file-warning-threshold nil)' -f batch-native-compile {} || true"
|
||||
- '' + ''
|
||||
- emacs --batch -l package --eval "(package-generate-autoloads \"mu4e\" \"$out/share/emacs/site-lisp/mu4e\")"
|
||||
+ # move only the mu4e info manual
|
||||
+ # this has to be after preFixup otherwise the info manual may be moved back by _multioutDocs()
|
||||
+ # we manually move the mu4e info manual instead of setting
|
||||
+ # outputInfo to mu4e because we do not want to move the mu-guile
|
||||
+ # info manual (if it exists)
|
||||
+ postFixup = ''
|
||||
+ moveToOutput share/info/mu4e.info.gz $mu4e
|
||||
+ install-info $mu4e/share/info/mu4e.info.gz $mu4e/share/info/dir
|
||||
+ if [[ -a ''${!outputInfo}/share/info/mu-guile.info.gz ]]; then
|
||||
+ install-info --delete $mu4e/share/info/mu4e.info.gz ''${!outputInfo}/share/info/dir
|
||||
+ else
|
||||
+ rm --verbose --recursive ''${!outputInfo}/share/info
|
||||
+ fi
|
||||
'';
|
||||
|
||||
buildInputs = [ emacs glib gmime3 texinfo xapian ];
|
||||
@@ -49,6 +66,7 @@ stdenv.mkDerivation rec {
|
||||
mesonFlags = [
|
||||
"-Dguile=disabled"
|
||||
"-Dreadline=disabled"
|
||||
+ "-Dlispdir=${placeholder "mu4e"}/share/emacs/site-lisp"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkg-config meson ninja ];
|
Loading…
Add table
Add a link
Reference in a new issue