diff options
Diffstat (limited to 'pkgs/applications/editors')
-rw-r--r-- | pkgs/applications/editors/emacs-23/builder.sh | 34 | ||||
-rw-r--r-- | pkgs/applications/editors/emacs-23/default.nix | 72 | ||||
-rw-r--r-- | pkgs/applications/editors/emacs-modes/bbdb/3.nix | 25 | ||||
-rw-r--r-- | pkgs/applications/editors/zed/default.nix | 75 |
4 files changed, 100 insertions, 106 deletions
diff --git a/pkgs/applications/editors/emacs-23/builder.sh b/pkgs/applications/editors/emacs-23/builder.sh deleted file mode 100644 index d04e7a4fdd3f..000000000000 --- a/pkgs/applications/editors/emacs-23/builder.sh +++ /dev/null @@ -1,34 +0,0 @@ -source $stdenv/setup - -# This hook is supposed to be run on Linux. It patches the proper locations of -# the crt{1,i,n}.o files into the build to ensure that Emacs is linked with -# *our* versions, not the ones found in the system, as it would do by default. -# On other platforms, this appears to be unnecessary. -preConfigure() { - case "${system}" in - x86_64-linux) glibclibdir=lib64 ;; - i686-linux) glibclibdir=lib ;; - *) return; - esac - - 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/${glibclibdir}/crt1.o $libc/${glibclibdir}/crt1.o \ - --replace /usr/${glibclibdir}/crti.o $libc/${glibclibdir}/crti.o \ - --replace /usr/${glibclibdir}/crtn.o $libc/${glibclibdir}/crtn.o \ - --replace /usr/lib/crt1.o $libc/${glibclibdir}/crt1.o \ - --replace /usr/lib/crti.o $libc/${glibclibdir}/crti.o \ - --replace /usr/lib/crtn.o $libc/${glibclibdir}/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/default.nix b/pkgs/applications/editors/emacs-23/default.nix deleted file mode 100644 index ab5c8e49e7f1..000000000000 --- a/pkgs/applications/editors/emacs-23/default.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ stdenv, fetchurl, ncurses, x11, libXaw, libXpm, Xaw3d -, pkgconfig, gtk, libXft, dbus, libpng, libjpeg, libungif -, libtiff, librsvg, texinfo, gconf -}: - -assert (gtk != null) -> (pkgconfig != null); -assert (libXft != null) -> libpng != null; # probably a bug -assert stdenv.isDarwin -> libXaw != null; # fails to link otherwise - -stdenv.mkDerivation rec { - name = "emacs-23.4"; - - builder = ./builder.sh; - - src = fetchurl { - url = "mirror://gnu/emacs/${name}.tar.bz2"; - sha256 = "1fc8x5p38qihg7l6z2b1hjc534lnjb8gqpwgywlwg5s3csg6ymr6"; - }; - - buildInputs = - [ ncurses x11 texinfo libXaw Xaw3d libXpm libpng libjpeg libungif - libtiff librsvg libXft gconf - ] - ++ stdenv.lib.optionals (gtk != null) [ gtk pkgconfig ] - ++ stdenv.lib.optional stdenv.isLinux dbus; - - configureFlags = - stdenv.lib.optionals (gtk != null) [ "--with-x-toolkit=gtk" "--with-xft"] - - # On NixOS, help Emacs find `crt*.o'. - ++ stdenv.lib.optional (stdenv ? glibc) - [ "--with-crt-dir=${stdenv.glibc}/lib" ]; - - postInstall = '' - cat >$out/share/emacs/site-lisp/site-start.el <<EOF -;; nixos specific load-path -(when (getenv "NIX_PROFILES") (setq load-path - (append (reverse (mapcar (lambda (x) (concat x "/share/emacs/site-lisp/")) - (split-string (getenv "NIX_PROFILES")))) - load-path))) -EOF - ''; - - 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 = with stdenv.lib.maintainers; [ simons chaoflow ]; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/pkgs/applications/editors/emacs-modes/bbdb/3.nix b/pkgs/applications/editors/emacs-modes/bbdb/3.nix new file mode 100644 index 000000000000..556bf83fab72 --- /dev/null +++ b/pkgs/applications/editors/emacs-modes/bbdb/3.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchurl, emacs }: + +stdenv.mkDerivation rec { + name = "bbdb-3.1.2"; + + src = fetchurl { + url = "http://download.savannah.gnu.org/releases/bbdb/${name}.tar.gz"; + sha256 = "1gs16bbpiiy01w9pyg12868r57kx1v3hnw04gmqsmpc40l1hyy05"; + }; + + buildInputs = [ emacs ]; + + # Hack to disable documentation as there is no way to tell bbdb to + # NOT build pdfs. I really don't want to pull in TexLive here... + preConfigure = '' + substituteInPlace ./Makefile.in \ + --replace "SUBDIRS = lisp doc tex" "SUBDIRS = lisp" + ''; + + meta = { + homepage = "http://savannah.nongnu.org/projects/bbdb/"; + description = "The Insidious Big Brother Database (BBDB), a contact management utility for Emacs, version 3"; + license = "GPL"; + }; +} diff --git a/pkgs/applications/editors/zed/default.nix b/pkgs/applications/editors/zed/default.nix new file mode 100644 index 000000000000..61abec29b47d --- /dev/null +++ b/pkgs/applications/editors/zed/default.nix @@ -0,0 +1,75 @@ +{ stdenv, buildEnv, fetchurl, xlibs, glib, gtk2, atk, pango, gdk_pixbuf, + cairo, freetype, fontconfig, nss, nspr, gnome, alsaLib, expat, dbus, udev, + makeWrapper, writeScript, gnused }: + +let + + rpath_env = buildEnv { + name = "rpath_env"; + paths = [ xlibs.libX11 xlibs.libXrender glib xlibs.libXtst gtk2 atk pango + gdk_pixbuf cairo freetype fontconfig xlibs.libXi xlibs.libXcomposite + nss nspr gnome.GConf xlibs.libXext xlibs.libXfixes alsaLib + xlibs.libXdamage expat dbus stdenv.gcc ]; + pathsToLink = [ "/lib" "/lib64" ]; + }; + + name = "zed-${version}"; + version = "0.12.0"; + + zed = stdenv.mkDerivation rec { + inherit name version; + + src = if stdenv.system == "i686-linux" then fetchurl { + url = "http://download.zedapp.org/zed-linux32-v${version}.tar.gz"; + sha256 = "04cygfhaynlpl8jrf2r55qk5zz1ipad8l9m8q81lfly2q0h9fbxi"; + } else fetchurl { + url = "http://download.zedapp.org/zed-linux64-v${version}.tar.gz"; + sha256 = "0ng2v07fyglpbyl4pwm2bn5rbldw51kliw8rakbpcdia891hi6z1"; + }; + + buildInputs = [ makeWrapper ]; + + installPhase = '' + mkdir -p $out/zed + cp ./* $out/zed + ''; + + postFixup = '' + patchelf --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" $out/zed/zed-bin + patchelf --set-rpath "${rpath_env}/lib:${rpath_env}/lib64" $out/zed/zed-bin + + mkdir -p $out/lib + ln -s ${udev}/lib/libudev.so.1 $out/lib/libudev.so.0 + + wrapProgram $out/zed/zed-bin \ + --prefix LD_LIBRARY_PATH : $out/lib + ''; + }; + zed_installer = writeScript "zed-installer.sh" '' + mkdir -p ~/.zed + cp -rv ${zed}/zed/* ~/.zed + + ${gnused}/bin/sed -ri 's/DIR\=\$\(dirname\ \$0\)/DIR\=\~\/\.zed/' ~/.zed/zed + + mkdir -p ~/bin + ln -sv ~/.zed/zed ~/bin/zed + ''; + +in stdenv.mkDerivation rec { + inherit name version; + + src = zed; + + installPhase = '' + mkdir -p $out/bin + ln -s ${zed_installer} $out/bin/zed-installer + ''; + + meta = { + description = "Zed is a fully offline-capable, open source, keyboard-focused, text and code editor for power users"; + license = stdenv.lib.licenses.mit; + homepage = http://zedapp.org/; + maintainers = [ stdenv.lib.maintainers.matejc ]; + platforms = stdenv.lib.platforms.linux; + }; +} |