72 lines
2.4 KiB
Nix
72 lines
2.4 KiB
Nix
|
{ 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
|
||
|
|
||
|
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 ];
|
||
|
};
|
||
|
}
|