GNU Emacs 23.1.

svn path=/nixpkgs/trunk/; revision=16529
This commit is contained in:
Ludovic Courtès 2009-07-31 22:25:05 +00:00
parent 937c50442c
commit 9e8792548d
5 changed files with 105 additions and 1 deletions

View File

@ -0,0 +1,71 @@
{ 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 editorand 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 ];
};
}

View File

@ -0,0 +1,21 @@
source $stdenv/setup
preConfigure() {
libc=$(cat ${NIX_GCC}/nix-support/orig-libc)
echo "libc: $libc"
for i in src/s/*.h src/m/*.h; do
substituteInPlace $i \
--replace /usr/lib/crt1.o $libc/lib/crt1.o \
--replace /usr/lib/crti.o $libc/lib/crti.o \
--replace /usr/lib/crtn.o $libc/lib/crtn.o
done
for i in Makefile.in ./src/Makefile.in ./lib-src/Makefile.in ./leim/Makefile.in; do
substituteInPlace $i --replace /bin/pwd pwd
done
}
preBuild="make bootstrap"
genericBuild

View File

@ -6162,7 +6162,19 @@ let
gtkGUI = getPkgConfig "emacs" "gtkSupport" true;
};
emacs23 = lowPrio (import ../applications/editors/emacs-23-snapshot {
emacs23 = import ../applications/editors/emacs-23 {
inherit fetchurl stdenv ncurses pkgconfig x11 Xaw3d
libpng libjpeg libungif libtiff texinfo dbus;
inherit (xlibs) libXaw libXpm libXft;
inherit (gtkLibs) gtk;
xawSupport = getPkgConfig "emacs" "xawSupport" false;
xaw3dSupport = getPkgConfig "emacs" "xaw3dSupport" false;
gtkGUI = getPkgConfig "emacs" "gtkSupport" true;
xftSupport = getPkgConfig "emacs" "xftSupport" true;
dbusSupport = getPkgConfig "emacs" "dbusSupport" true;
};
emacsSnapshot = lowPrio (import ../applications/editors/emacs-snapshot {
inherit fetchcvs stdenv ncurses pkgconfig x11 Xaw3d
libpng libjpeg libungif libtiff texinfo dbus
autoconf automake;