You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

137 lines
5.3 KiB

  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
  3. ;;;
  4. ;;; This file is part of GNU Guix.
  5. ;;;
  6. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  7. ;;; under the terms of the GNU General Public License as published by
  8. ;;; the Free Software Foundation; either version 3 of the License, or (at
  9. ;;; your option) any later version.
  10. ;;;
  11. ;;; GNU Guix is distributed in the hope that it will be useful, but
  12. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  13. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. ;;; GNU General Public License for more details.
  15. ;;;
  16. ;;; You should have received a copy of the GNU General Public License
  17. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  18. (define-module (gnu packages emacs)
  19. #:use-module (guix licenses)
  20. #:use-module (guix packages)
  21. #:use-module (guix download)
  22. #:use-module (guix build-system gnu)
  23. #:use-module (gnu packages)
  24. #:use-module (gnu packages gtk)
  25. #:use-module (gnu packages ncurses)
  26. #:use-module (gnu packages texinfo)
  27. #:use-module (gnu packages gnutls)
  28. #:use-module (gnu packages pkg-config)
  29. #:use-module (gnu packages guile)
  30. #:use-module (gnu packages xorg)
  31. #:use-module (gnu packages lesstif)
  32. #:use-module (gnu packages libjpeg)
  33. #:use-module (gnu packages libtiff)
  34. #:use-module (gnu packages libpng)
  35. #:use-module ((gnu packages compression)
  36. #:renamer (symbol-prefix-proc 'compression:))
  37. #:use-module (gnu packages xml)
  38. #:use-module (gnu packages glib))
  39. (define-public emacs
  40. (package
  41. (name "emacs")
  42. (version "24.3")
  43. (source (origin
  44. (method url-fetch)
  45. (uri (string-append "mirror://gnu/emacs/emacs-"
  46. version ".tar.xz"))
  47. (sha256
  48. (base32
  49. "1385qzs3bsa52s5rcncbrkxlydkw0ajzrvfxgv8rws5fx512kakh"))
  50. (patches (list (search-patch "emacs-configure-sh.patch")))))
  51. (build-system gnu-build-system)
  52. (arguments
  53. '(#:configure-flags
  54. (list (string-append "--with-crt-dir=" (assoc-ref %build-inputs "libc")
  55. "/lib")
  56. "--with-gif=no") ; XXX: add libungif
  57. #:phases (alist-cons-before
  58. 'configure 'fix-/bin/pwd
  59. (lambda _
  60. ;; Use `pwd', not `/bin/pwd'.
  61. (substitute* (find-files "." "^Makefile\\.in$")
  62. (("/bin/pwd")
  63. "pwd")))
  64. %standard-phases)))
  65. (inputs
  66. `(("pkg-config" ,pkg-config)
  67. ("gnutls" ,gnutls)
  68. ("texinfo" ,texinfo)
  69. ("ncurses" ,ncurses)
  70. ;; TODO: Add the optional dependencies.
  71. ("xlibs" ,libx11)
  72. ("gtk+" ,gtk+-2)
  73. ("libXft" ,libxft)
  74. ("libtiff" ,libtiff)
  75. ;; ("libungif" ,libungif)
  76. ("libjpeg" ,libjpeg-8)
  77. ;; When looking for libpng `configure' links with `-lpng -lz', so we
  78. ;; must also provide zlib as an input.
  79. ("libpng" ,libpng)
  80. ("zlib" ,compression:zlib)
  81. ("libXpm" ,libxpm)
  82. ("libxml2" ,libxml2)
  83. ("dbus" ,dbus)))
  84. (home-page "http://www.gnu.org/software/emacs/")
  85. (synopsis "The extensible, customizable, self-documenting text editor")
  86. (description
  87. "Emacs is an extensible and highly customizable text editor. It is
  88. based on an Emacs Lisp interpreter which has extensions to support text
  89. editing. Due to its unique structure, it can be configured in an infinite
  90. multitude of ways, which has given rise to a vast array of packages that have
  91. been written for it that do everything from working as an email client to
  92. communicating online via IRC or XMPP. Emacs is fully self-documenting and it
  93. features full Unicode support for nearly every human language.")
  94. (license gpl3+)))
  95. ;;;
  96. ;;; Emacs hacking.
  97. ;;;
  98. (define-public geiser
  99. (package
  100. (name "geiser")
  101. (version "0.4")
  102. (source (origin
  103. (method url-fetch)
  104. (uri (string-append "mirror://savannah/geiser/" version
  105. "/geiser-" version ".tar.gz"))
  106. (sha256
  107. (base32 "0ds7zk9b1839l9fsqfsgrby6manvy1cf5bjniiqhxl55h0cr6ijp"))))
  108. (build-system gnu-build-system)
  109. (inputs `(("guile" ,guile-2.0)
  110. ("emacs" ,emacs)))
  111. (home-page "http://nongnu.org/geiser/")
  112. (synopsis "Collection of Emacs modes for Guile and Racket hacking")
  113. (description
  114. "Geiser is a collection of Emacs major and minor modes that
  115. conspire with one or more Scheme interpreters to keep the Lisp Machine
  116. Spirit alive. It draws inspiration (and a bit more) from environments
  117. such as Common Lisp’s Slime, Factor’s FUEL, Squeak or Emacs itself, and
  118. does its best to make Scheme hacking inside Emacs (even more) fun.
  119. Or, to be precise, what i consider fun. Geiser is thus my humble
  120. contribution to the dynamic school of expression, and a reaction against
  121. what i perceive as a derailment, in modern times, of standard Scheme
  122. towards the static camp. Because i prefer growing and healing to poking
  123. at corpses, the continuously running Scheme interpreter takes the center
  124. of the stage in Geiser. A bundle of Elisp shims orchestrates the dialog
  125. between the Scheme interpreter, Emacs and, ultimately, the schemer,
  126. giving her access to live metadata.")
  127. (license bsd-3)))