{ stdenv, fetchurl, ncurses, pkgconfig, texinfo, libxml2, gnutls , Carbon, Cocoa, ImageCaptureCore, OSAKit, Quartz, WebKit }: stdenv.mkDerivation rec { emacsName = "emacs-24.5"; name = "${emacsName}-mac-5.13"; #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 = "0p8xpsnsdpwpfq4mz0fazm785d0my0pq4ifbw533g959jh17b36h"; }; enableParallelBuilding = true; buildInputs = [ ncurses pkgconfig texinfo libxml2 gnutls ]; propagatedBuildInputs = [ Carbon Cocoa ImageCaptureCore OSAKit Quartz WebKit ]; postUnpack = '' mv $emacsName $name tar xzf $macportSrc mv $name $emacsName ''; preConfigure = '' substituteInPlace lisp/international/mule-cmds.el --replace /usr $TMPDIR 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 <