3ef7671cea
The $lib output refers to the terminfo database in $out, which is about 10x larger than the ncurses shared library. Splitting these outputs saves a small amount of space for any derivations that use the terminfo database but not the ncurses library, but we do not have evidence that any such exist.
91 lines
3.0 KiB
Nix
91 lines
3.0 KiB
Nix
{ stdenv, fetchurl, ncurses, pkgconfig, texinfo, libxml2, gnutls, gettext
|
|
, AppKit, Carbon, Cocoa, IOKit, OSAKit, Quartz, QuartzCore, WebKit
|
|
, ImageCaptureCore, GSS, ImageIO # These may be optional
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
emacsName = "emacs-24.5";
|
|
name = "${emacsName}-mac-5.15";
|
|
|
|
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 = "1r47bm1pf5av2yr37byz91y7bp6vdw9smahiy18g5qp4jp6mz193";
|
|
};
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
buildInputs = [ ncurses libxml2 gnutls pkgconfig texinfo gettext ];
|
|
|
|
propagatedBuildInputs = [
|
|
AppKit Carbon Cocoa IOKit OSAKit Quartz QuartzCore WebKit
|
|
ImageCaptureCore GSS ImageIO # may be optional
|
|
];
|
|
|
|
postUnpack = ''
|
|
mv $emacsName $name
|
|
tar xzf $macportSrc
|
|
mv $name $emacsName
|
|
'';
|
|
|
|
postPatch = ''
|
|
patch -p1 < patch-mac
|
|
sed -i 's|/usr/share/locale|${gettext}/share/locale|g' lisp/international/mule-cmds.el
|
|
'';
|
|
|
|
configureFlags = [
|
|
"LDFLAGS=-L${ncurses.out}/lib"
|
|
"--with-xml2=yes"
|
|
"--with-gnutls=yes"
|
|
"--with-mac"
|
|
"--enable-mac-app=$$out/Applications"
|
|
];
|
|
|
|
CFLAGS = "-O3";
|
|
LDFLAGS = "-O3 -L${ncurses.out}/lib";
|
|
|
|
postInstall = ''
|
|
mkdir -p $out/share/emacs/site-lisp/
|
|
cp ${./site-start.el} $out/share/emacs/site-lisp/site-start.el
|
|
'';
|
|
|
|
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.11. 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.
|
|
'';
|
|
};
|
|
}
|