2009-08-01 02:25:05 +04:00
|
|
|
{ xawSupport ? true
|
|
|
|
, xpmSupport ? true
|
|
|
|
, dbusSupport ? true
|
|
|
|
, xaw3dSupport ? false
|
|
|
|
, gtkGUI ? false
|
|
|
|
, xftSupport ? false
|
|
|
|
, stdenv, fetchurl, ncurses, x11, libXaw ? null, libXpm ? null, Xaw3d ? null
|
|
|
|
, pkgconfig ? null, gtk ? null, libXft ? null, dbus ? null
|
|
|
|
, libpng, libjpeg, libungif, libtiff, texinfo
|
|
|
|
}:
|
|
|
|
|
|
|
|
assert xawSupport -> libXaw != null;
|
|
|
|
assert xpmSupport -> libXpm != null;
|
|
|
|
assert dbusSupport -> dbus != null;
|
|
|
|
assert xaw3dSupport -> Xaw3d != null;
|
|
|
|
assert gtkGUI -> pkgconfig != null && gtk != null;
|
|
|
|
assert xftSupport -> libXft != null && libpng != null; # libpng = probably a bug
|
2009-10-02 17:57:26 +04:00
|
|
|
assert stdenv.system == "i686-darwin" -> xawSupport; # fails to link otherwise
|
2009-08-01 02:25:05 +04:00
|
|
|
|
|
|
|
stdenv.mkDerivation rec {
|
|
|
|
name = "emacs-23.1";
|
|
|
|
|
|
|
|
builder = ./builder.sh;
|
|
|
|
|
|
|
|
src = fetchurl {
|
|
|
|
url = "mirror://gnu/emacs/${name}.tar.bz2";
|
|
|
|
sha256 = "076b4ixdp29l4c02bwic26d14gxlj0lcqyam33wyj3ksgi2z8d9b";
|
|
|
|
};
|
|
|
|
|
|
|
|
buildInputs = [
|
|
|
|
ncurses x11 texinfo
|
|
|
|
(if xawSupport then libXaw else null)
|
|
|
|
(if xpmSupport then libXpm else null)
|
|
|
|
(if dbusSupport then dbus else null)
|
|
|
|
(if xaw3dSupport then Xaw3d else null)
|
|
|
|
libpng libjpeg libungif libtiff # maybe not strictly required?
|
|
|
|
]
|
|
|
|
++ (if gtkGUI then [pkgconfig gtk] else [])
|
|
|
|
++ (if xftSupport then [libXft] else []);
|
|
|
|
|
|
|
|
configureFlags = "
|
|
|
|
${if gtkGUI then "--with-x-toolkit=gtk --enable-font-backend --with-xft" else ""}
|
|
|
|
";
|
|
|
|
|
|
|
|
doCheck = true;
|
|
|
|
|
|
|
|
meta = {
|
|
|
|
description = "GNU Emacs 23.x, the extensible, customizable text editor";
|
|
|
|
|
|
|
|
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.
|
|
|
|
'';
|
|
|
|
|
|
|
|
homepage = http://www.gnu.org/software/emacs/;
|
|
|
|
license = "GPLv3+";
|
|
|
|
|
|
|
|
maintainers = [ stdenv.lib.maintainers.ludo ];
|
2009-09-17 14:26:55 +04:00
|
|
|
platforms = stdenv.lib.platforms.linux; # GTK & co. are needed.
|
2009-08-01 02:25:05 +04:00
|
|
|
};
|
|
|
|
}
|