summary refs log tree commit diff
path: root/pkgs/applications/editors/emacs-24/macport-24.5.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/editors/emacs-24/macport-24.5.nix')
-rw-r--r--pkgs/applications/editors/emacs-24/macport-24.5.nix101
1 files changed, 101 insertions, 0 deletions
diff --git a/pkgs/applications/editors/emacs-24/macport-24.5.nix b/pkgs/applications/editors/emacs-24/macport-24.5.nix
new file mode 100644
index 00000000000..db0d05584e1
--- /dev/null
+++ b/pkgs/applications/editors/emacs-24/macport-24.5.nix
@@ -0,0 +1,101 @@
+{ stdenv, fetchurl, ncurses, pkgconfig, texinfo, libxml2, gnutls
+}:
+
+stdenv.mkDerivation rec {
+  emacsName = "emacs-24.5";
+  name = "${emacsName}-mac-5.7";
+
+  #builder = ./builder.sh;
+
+  src = fetchurl {
+    url = "mirror://gnu/emacs/${emacsName}.tar.xz";
+    sha256 = "0kn3rzm91qiswi0cql89kbv6mqn27rwsyjfb8xmwy9m5s8fxfiyx";
+  };
+
+  macportSrc = fetchurl {
+    url = "ftp://ftp.math.s.chiba-u.ac.jp/emacs/${name}.tar.gz";
+    sha256 = "1a86l3556h24x9ml6r8n6xbrxymb9gr38sicny3f0m281myhlsvv";
+  };
+
+  buildInputs = [ ncurses pkgconfig texinfo libxml2 gnutls ];
+
+  postUnpack = ''
+    mv $emacsName $name
+    tar xzf $macportSrc
+    mv $name $emacsName
+  '';
+
+  preConfigure = ''
+    substituteInPlace Makefile.in --replace "/bin/pwd" "pwd"
+    substituteInPlace lib-src/Makefile.in --replace "/bin/pwd" "pwd"
+
+    patch -p1 < patch-mac
+
+    # The search for 'tputs' will fail because it's in ncursesw within the
+    # ncurses package, yet Emacs' configure script only looks in ncurses.
+    # Further, we need to make sure that the -L option occurs before mention
+    # of the library, so that it finds it within the Nix store.
+    sed -i 's/tinfo ncurses/tinfo ncursesw/' configure
+    ncurseslib=$(echo ${ncurses}/lib | sed 's#/#\\/#g')
+    sed -i "s/OLIBS=\$LIBS/OLIBS=\"-L$ncurseslib \$LIBS\"/" configure
+    sed -i 's/LIBS="\$LIBS_TERMCAP \$LIBS"/LIBS="\$LIBS \$LIBS_TERMCAP"/' configure
+
+    configureFlagsArray=(
+      LDFLAGS=-L${ncurses}/lib
+      --with-xml2=yes
+      --with-gnutls=yes
+      --with-mac
+      --enable-mac-app=$out/Applications
+    )
+    makeFlagsArray=(
+      CFLAGS=-O3
+      LDFLAGS="-O3 -L${ncurses}/lib"
+    );
+  '';
+
+  postInstall = ''
+    cat >$out/share/emacs/site-lisp/site-start.el <<EOF
+    ;; nixos specific load-path
+    (when (getenv "NIX_PROFILES") (setq load-path
+                          (append (reverse (mapcar (lambda (x) (concat x "/share/emacs/site-lisp/"))
+                             (split-string (getenv "NIX_PROFILES"))))
+                    load-path)))
+
+    ;; make tramp work for NixOS machines
+    (eval-after-load 'tramp '(add-to-list 'tramp-remote-path "/run/current-system/sw/bin"))
+    EOF
+  '';
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    description = "GNU Emacs 24, the extensible, customizable text editor";
+    homepage    = http://www.gnu.org/software/emacs/;
+    license     = licenses.gpl3Plus;
+    maintainers = with maintainers; [ jwiegley ];
+    platforms   = platforms.darwin;
+
+    longDescription = ''
+      GNU Emacs is an extensible, customizable text editor—and more.  At its
+      core is an interpreter for Emacs Lisp, a dialect of the Lisp
+      programming language with extensions to support text editing.
+
+      The features of GNU Emacs include: content-sensitive editing modes,
+      including syntax coloring, for a wide variety of file types including
+      plain text, source code, and HTML; complete built-in documentation,
+      including a tutorial for new users; full Unicode support for nearly all
+      human languages and their scripts; highly customizable, using Emacs
+      Lisp code or a graphical interface; a large number of extensions that
+      add other functionality, including a project planner, mail and news
+      reader, debugger interface, calendar, and more.  Many of these
+      extensions are distributed with GNU Emacs; others are available
+      separately.
+
+      This is "Mac port" addition to GNU Emacs 24. This provides a native
+      GUI support for Mac OS X 10.4 - 10.9. Note that Emacs 23 and later
+      already contain the official GUI support via the NS (Cocoa) port for
+      Mac OS X 10.4 and later. So if it is good enough for you, then you
+      don't need to try this.
+    '';
+  };
+}