diff --git a/pkgs/applications/editors/emacs-23-snapshot/builder.sh b/pkgs/applications/editors/emacs-23/builder.sh similarity index 100% rename from pkgs/applications/editors/emacs-23-snapshot/builder.sh rename to pkgs/applications/editors/emacs-23/builder.sh diff --git a/pkgs/applications/editors/emacs-23/default.nix b/pkgs/applications/editors/emacs-23/default.nix new file mode 100644 index 000000000000..1d806f76b8d5 --- /dev/null +++ b/pkgs/applications/editors/emacs-23/default.nix @@ -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 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 ]; + }; +} diff --git a/pkgs/applications/editors/emacs-snapshot/builder.sh b/pkgs/applications/editors/emacs-snapshot/builder.sh new file mode 100644 index 000000000000..677311c4fd30 --- /dev/null +++ b/pkgs/applications/editors/emacs-snapshot/builder.sh @@ -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 diff --git a/pkgs/applications/editors/emacs-23-snapshot/default.nix b/pkgs/applications/editors/emacs-snapshot/default.nix similarity index 100% rename from pkgs/applications/editors/emacs-23-snapshot/default.nix rename to pkgs/applications/editors/emacs-snapshot/default.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 983210f73e4a..d92f4c19395f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -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;