diff options
Diffstat (limited to 'app-editors/xemacs')
-rw-r--r-- | app-editors/xemacs/ChangeLog | 8 | ||||
-rw-r--r-- | app-editors/xemacs/files/font-lock-keywords.patch | 224 | ||||
-rw-r--r-- | app-editors/xemacs/files/font-lock-warning-face.patch | 19 | ||||
-rw-r--r-- | app-editors/xemacs/files/xemacs-21.4.20-linuxplay.patch | 29 | ||||
-rw-r--r-- | app-editors/xemacs/xemacs-21.4.20-r4.ebuild | 243 | ||||
-rw-r--r-- | app-editors/xemacs/xemacs-21.4.20-r5.ebuild | 248 |
6 files changed, 7 insertions, 764 deletions
diff --git a/app-editors/xemacs/ChangeLog b/app-editors/xemacs/ChangeLog index 652a5e898246..66384f74a776 100644 --- a/app-editors/xemacs/ChangeLog +++ b/app-editors/xemacs/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for app-editors/xemacs # Copyright 2002-2008 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-editors/xemacs/ChangeLog,v 1.107 2008/02/02 13:24:26 graaff Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-editors/xemacs/ChangeLog,v 1.108 2008/04/09 06:29:28 graaff Exp $ + + 09 Apr 2008; Hans de Graaff <graaff@gentoo.org> + -files/xemacs-21.4.20-linuxplay.patch, -files/font-lock-keywords.patch, + -files/font-lock-warning-face.patch, -xemacs-21.4.20-r4.ebuild, + -xemacs-21.4.20-r5.ebuild: + Remove old versions 02 Feb 2008; Hans de Graaff <graaff@gentoo.org> xemacs-21.4.21.ebuild: Stable on amd64 wrt bug 203245 diff --git a/app-editors/xemacs/files/font-lock-keywords.patch b/app-editors/xemacs/files/font-lock-keywords.patch deleted file mode 100644 index 15a21f5ecdd0..000000000000 --- a/app-editors/xemacs/files/font-lock-keywords.patch +++ /dev/null @@ -1,224 +0,0 @@ ---- font-lock.el 2006-06-04 18:05:28.000000000 +0200 -+++ ../../xemacs-21.5/lisp/font-lock.el 2007-06-23 09:13:48.000000000 +0200 -@@ -441,6 +449,32 @@ - Be very careful composing regexps for this list; the wrong pattern can - dramatically slow things down! - ") -+ -+(defvar font-lock-keywords-alist nil -+ "Alist of additional `font-lock-keywords' elements for major modes. -+ -+Each element has the form (MODE KEYWORDS . HOW). -+`font-lock-set-defaults' adds the elements in the list KEYWORDS to -+`font-lock-keywords' when Font Lock is turned on in major mode MODE. -+ -+If HOW is nil, KEYWORDS are added at the beginning of -+`font-lock-keywords'. If it is `set', they are used to replace the -+value of `font-lock-keywords'. If HOW is any other non-nil value, -+they are added at the end. -+ -+This is normally set via `font-lock-add-keywords' and -+`font-lock-remove-keywords'.") -+ -+(defvar font-lock-removed-keywords-alist nil -+ "Alist of `font-lock-keywords' elements to be removed for major modes. -+ -+Each element has the form (MODE . KEYWORDS). `font-lock-set-defaults' -+removes the elements in the list KEYWORDS from `font-lock-keywords' -+when Font Lock is turned on in major mode MODE. -+ -+This is normally set via `font-lock-add-keywords' and -+`font-lock-remove-keywords'.") -+ - ;;;###autoload - (make-variable-buffer-local 'font-lock-keywords) - -@@ -860,6 +899,188 @@ - (setq font-lock-maximum-decoration t) - (font-lock-recompute-variables))) - -+(defun font-lock-add-keywords (mode keywords &optional how) -+ "Add highlighting KEYWORDS for MODE. -+ -+MODE should be a symbol, the major mode command name, such as `c-mode' -+or nil. If nil, highlighting keywords are added for the current buffer. -+KEYWORDS should be a list; see the variable `font-lock-keywords'. -+By default they are added at the beginning of the current highlighting list. -+If optional argument HOW is `set', they are used to replace the current -+highlighting list. If HOW is any other non-nil value, they are added at the -+end of the current highlighting list. -+ -+For example: -+ -+ (font-lock-add-keywords 'c-mode -+ '((\"\\\\\\=<\\\\(FIXME\\\\):\" 1 font-lock-warning-face prepend) -+ (\"\\\\\\=<\\\\(and\\\\|or\\\\|not\\\\)\\\\\\=>\" . font-lock-keyword-face))) -+ -+adds two fontification patterns for C mode, to fontify `FIXME:' words, even in -+comments, and to fontify `and', `or' and `not' words as keywords. -+ -+The above procedure will only add the keywords for C mode, not -+for modes derived from C mode. To add them for derived modes too, -+pass nil for MODE and add the call to c-mode-hook. -+ -+For example: -+ -+ (add-hook 'c-mode-hook -+ (lambda () -+ (font-lock-add-keywords nil -+ '((\"\\\\\\=<\\\\(FIXME\\\\):\" 1 font-lock-warning-face prepend) -+ (\"\\\\\\=<\\\\(and\\\\|or\\\\|not\\\\)\\\\\\=>\" . -+ font-lock-keyword-face))))) -+ -+The above procedure may fail to add keywords to derived modes if -+some involved major mode does not follow the standard conventions. -+File a bug report if this happens, so the major mode can be corrected. -+ -+Note that some modes have specialized support for additional patterns, e.g., -+see the variables `c-font-lock-extra-types', `c++-font-lock-extra-types', -+`objc-font-lock-extra-types' and `java-font-lock-extra-types'." -+ (cond (mode -+ ;; If MODE is non-nil, add the KEYWORDS and HOW spec to -+ ;; `font-lock-keywords-alist' so `font-lock-set-defaults' uses them. -+ (let ((spec (cons keywords how)) cell) -+ (if (setq cell (assq mode font-lock-keywords-alist)) -+ (if (eq how 'set) -+ (setcdr cell (list spec)) -+ (setcdr cell (append (cdr cell) (list spec)))) -+ (push (list mode spec) font-lock-keywords-alist))) -+ ;; Make sure that `font-lock-removed-keywords-alist' does not -+ ;; contain the new keywords. -+ (font-lock-update-removed-keyword-alist mode keywords how)) -+ (t -+ ;; Otherwise set or add the keywords now. -+ ;; This is a no-op if it has been done already in this buffer -+ ;; for the correct major mode. -+ (font-lock-set-defaults) -+ (let ((was-compiled (eq (car font-lock-keywords) t))) -+ ;; Bring back the user-level (uncompiled) keywords. -+ (if was-compiled -+ (setq font-lock-keywords (cadr font-lock-keywords))) -+ ;; Now modify or replace them. -+ (if (eq how 'set) -+ (setq font-lock-keywords keywords) -+ (font-lock-remove-keywords nil keywords) ;to avoid duplicates -+ (let ((old (if (eq (car-safe font-lock-keywords) t) -+ (cdr font-lock-keywords) -+ font-lock-keywords))) -+ (setq font-lock-keywords (if how -+ (append old keywords) -+ (append keywords old))))) -+ ;; If the keywords were compiled before, compile them again. -+ (if was-compiled -+ (setq font-lock-keywords -+ (font-lock-compile-keywords font-lock-keywords))))))) -+ -+(defun font-lock-update-removed-keyword-alist (mode keywords how) -+ "Update `font-lock-removed-keywords-alist' when adding new KEYWORDS to MODE." -+ ;; When font-lock is enabled first all keywords in the list -+ ;; `font-lock-keywords-alist' are added, then all keywords in the -+ ;; list `font-lock-removed-keywords-alist' are removed. If a -+ ;; keyword was once added, removed, and then added again it must be -+ ;; removed from the removed-keywords list. Otherwise the second add -+ ;; will not take effect. -+ (let ((cell (assq mode font-lock-removed-keywords-alist))) -+ (if cell -+ (if (eq how 'set) -+ ;; A new set of keywords is defined. Forget all about -+ ;; our old keywords that should be removed. -+ (setq font-lock-removed-keywords-alist -+ (delq cell font-lock-removed-keywords-alist)) -+ ;; Delete all previously removed keywords. -+ (dolist (kword keywords) -+ (setcdr cell (delete kword (cdr cell)))) -+ ;; Delete the mode cell if empty. -+ (if (null (cdr cell)) -+ (setq font-lock-removed-keywords-alist -+ (delq cell font-lock-removed-keywords-alist))))))) -+ -+;; Written by Anders Lindgren <andersl@andersl.com>. -+;; -+;; Case study: -+;; (I) The keywords are removed from a major mode. -+;; In this case the keyword could be local (i.e. added earlier by -+;; `font-lock-add-keywords'), global, or both. -+;; -+;; (a) In the local case we remove the keywords from the variable -+;; `font-lock-keywords-alist'. -+;; -+;; (b) The actual global keywords are not known at this time. -+;; All keywords are added to `font-lock-removed-keywords-alist', -+;; when font-lock is enabled those keywords are removed. -+;; -+;; Note that added keywords are taken out of the list of removed -+;; keywords. This ensure correct operation when the same keyword -+;; is added and removed several times. -+;; -+;; (II) The keywords are removed from the current buffer. -+(defun font-lock-remove-keywords (mode keywords) -+ "Remove highlighting KEYWORDS for MODE. -+ -+MODE should be a symbol, the major mode command name, such as `c-mode' -+or nil. If nil, highlighting keywords are removed for the current buffer. -+ -+To make the removal apply to modes derived from MODE as well, -+pass nil for MODE and add the call to MODE-hook. This may fail -+for some derived modes if some involved major mode does not -+follow the standard conventions. File a bug report if this -+happens, so the major mode can be corrected." -+ (cond (mode -+ ;; Remove one keyword at the time. -+ (dolist (keyword keywords) -+ (let ((top-cell (assq mode font-lock-keywords-alist))) -+ ;; If MODE is non-nil, remove the KEYWORD from -+ ;; `font-lock-keywords-alist'. -+ (when top-cell -+ (dolist (keyword-list-how-pair (cdr top-cell)) -+ ;; `keywords-list-how-pair' is a cons with a list of -+ ;; keywords in the car top-cell and the original how -+ ;; argument in the cdr top-cell. -+ (setcar keyword-list-how-pair -+ (delete keyword (car keyword-list-how-pair)))) -+ ;; Remove keyword list/how pair when the keyword list -+ ;; is empty and how doesn't specify `set'. (If it -+ ;; should be deleted then previously deleted keywords -+ ;; would appear again.) -+ (let ((cell top-cell)) -+ (while (cdr cell) -+ (if (and (null (car (car (cdr cell)))) -+ (not (eq (cdr (car (cdr cell))) 'set))) -+ (setcdr cell (cdr (cdr cell))) -+ (setq cell (cdr cell))))) -+ ;; Final cleanup, remove major mode cell if last keyword -+ ;; was deleted. -+ (if (null (cdr top-cell)) -+ (setq font-lock-keywords-alist -+ (delq top-cell font-lock-keywords-alist)))) -+ ;; Remember the keyword in case it is not local. -+ (let ((cell (assq mode font-lock-removed-keywords-alist))) -+ (if cell -+ (unless (member keyword (cdr cell)) -+ (nconc cell (list keyword))) -+ (push (cons mode (list keyword)) -+ font-lock-removed-keywords-alist)))))) -+ (t -+ ;; Otherwise remove it immediately. -+ (font-lock-set-defaults) -+ (let ((was-compiled (eq (car font-lock-keywords) t))) -+ ;; Bring back the user-level (uncompiled) keywords. -+ (if was-compiled -+ (setq font-lock-keywords (cadr font-lock-keywords))) -+ -+ ;; Edit them. -+ (setq font-lock-keywords (copy-sequence font-lock-keywords)) -+ (dolist (keyword keywords) -+ (setq font-lock-keywords -+ (delete keyword font-lock-keywords))) -+ -+ ;; If the keywords were compiled before, compile them again. -+ (if was-compiled -+ (setq font-lock-keywords -+ (font-lock-compile-keywords font-lock-keywords))))))) - - ;;;;;;;;;;;;;;;;;;;;;; actual code ;;;;;;;;;;;;;;;;;;;;;; - diff --git a/app-editors/xemacs/files/font-lock-warning-face.patch b/app-editors/xemacs/files/font-lock-warning-face.patch deleted file mode 100644 index 176bb399e498..000000000000 --- a/app-editors/xemacs/files/font-lock-warning-face.patch +++ /dev/null @@ -1,19 +0,0 @@ -Index: font-lock.el -=================================================================== -RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/font-lock.el,v -retrieving revision 1.31 -diff -u -B -r1.31 font-lock.el ---- lisp/font-lock.el 2006/11/01 23:14:33 1.31 -+++ lisp/font-lock.el 2007/06/23 07:14:17 -@@ -721,6 +721,11 @@ - It is present only for horrid FSF compatibility reasons. - The corresponding face should be set using `edit-faces' or the - `set-face-*' functions.") -+(defvar font-lock-warning-face 'font-lock-warning-face -+ "This variable should not be set. -+It is present only for horrid FSF compatibility reasons. -+The corresponding face should be set using `edit-faces' or the -+`set-face-*' functions.") - - (defconst font-lock-face-list - '(font-lock-comment-face diff --git a/app-editors/xemacs/files/xemacs-21.4.20-linuxplay.patch b/app-editors/xemacs/files/xemacs-21.4.20-linuxplay.patch deleted file mode 100644 index 485c768fe528..000000000000 --- a/app-editors/xemacs/files/xemacs-21.4.20-linuxplay.patch +++ /dev/null @@ -1,29 +0,0 @@ -Index: linuxplay.c -=================================================================== -RCS file: /pack/xemacscvs/XEmacs/xemacs/src/linuxplay.c,v -retrieving revision 1.13 -diff -u -B -r1.13 linuxplay.c ---- src/linuxplay.c 2001/04/12 18:23:58 1.13 -+++ src/linuxplay.c 2006/12/22 07:15:06 -@@ -290,7 +290,8 @@ - fmtType ffmt; - int fmt,speed,tracks; - unsigned char *pptr,*optr,*cptr,*sptr; -- int wrtn,rrtn,crtn,prtn; -+ int wrtn,crtn; -+ size_t prtn,rrtn; - unsigned char sndbuf[SNDBUFSZ]; - - /* We need to read at least the header information before we can start -@@ -338,9 +339,9 @@ - device; repeat until all data has been processed */ - rrtn = length; - do { -- for (pptr = data; (prtn = parsesndfile((void **)&pptr,(size_t *)&rrtn, -+ for (pptr = data; (prtn = parsesndfile((void **)&pptr, &rrtn, - (void **)&optr)) > 0; ) -- for (cptr = optr; (crtn = sndcnv((void **)&cptr,(size_t *) &prtn, -+ for (cptr = optr; (crtn = sndcnv((void **)&cptr, &prtn, - (void **)&sptr)) > 0; ) { - for (;;) { - if ((wrtn = write(audio_fd,sptr,crtn)) < 0) { diff --git a/app-editors/xemacs/xemacs-21.4.20-r4.ebuild b/app-editors/xemacs/xemacs-21.4.20-r4.ebuild deleted file mode 100644 index 1a5090f03e9f..000000000000 --- a/app-editors/xemacs/xemacs-21.4.20-r4.ebuild +++ /dev/null @@ -1,243 +0,0 @@ -# Copyright 1999-2007 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-editors/xemacs/xemacs-21.4.20-r4.ebuild,v 1.8 2007/10/10 07:27:26 ulm Exp $ - -# Note: xemacs currently does not work with a hardened profile. If you -# want to use xemacs on a hardened profile then compile with the -# -nopie flag in CFLAGS or help fix bug #75028. - -export WANT_AUTOCONF="2.1" -inherit autotools eutils - -DESCRIPTION="highly customizable open source text editor and application development system" -HOMEPAGE="http://www.xemacs.org/" -SRC_URI="http://ftp.xemacs.org/xemacs-21.4/${P}.tar.gz - http://www.malfunction.de/afterstep/files/NeXT_XEmacs.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="alpha amd64 hppa ppc ppc64 sparc x86" -IUSE="eolconv esd gif gpm pop postgres ldap xface nas dnd X jpeg tiff png mule motif freewnn canna xim athena neXt Xaw3d gdbm berkdb" - -X_DEPEND="x11-libs/libXt x11-libs/libXmu x11-libs/libXext x11-misc/xbitmaps" - -DEPEND="virtual/libc - !virtual/xemacs - berkdb? ( sys-libs/db ) - gdbm? ( >=sys-libs/gdbm-1.8.3 ) - >=sys-libs/zlib-1.1.4 - >=dev-libs/openssl-0.9.6 - >=media-libs/audiofile-0.2.3 - gpm? ( >=sys-libs/gpm-1.19.6 ) - postgres? ( >=dev-db/postgresql-7.2 ) - ldap? ( net-nds/openldap ) - esd? ( media-sound/esound ) - nas? ( media-libs/nas ) - X? ( $X_DEPEND !Xaw3d? ( !neXt? ( x11-libs/libXaw ) ) ) - dnd? ( x11-libs/dnd ) - motif? ( >=x11-libs/openmotif-2.1.30 ) - athena? ( x11-libs/libXaw ) - Xaw3d? ( x11-libs/Xaw3d ) - neXt? ( x11-libs/neXtaw ) - xface? ( media-libs/compface ) - tiff? ( media-libs/tiff ) - png? ( =media-libs/libpng-1.2* ) - jpeg? ( media-libs/jpeg ) - canna? ( app-i18n/canna ) - !amd64? ( freewnn? ( app-i18n/freewnn ) ) - >=sys-libs/ncurses-5.2 - >=app-admin/eselect-emacs-0.7-r1" - -PDEPEND="app-xemacs/xemacs-base - mule? ( app-xemacs/mule-base )" - -PROVIDE="virtual/xemacs" - -src_unpack() { - unpack ${P}.tar.gz - use neXt && unpack NeXT_XEmacs.tar.gz - - cd "${S}" - epatch "${FILESDIR}"/xemacs-21.4.19-texi.patch - - # see bug 58350, 102540 and 143580 - epatch "${FILESDIR}"/xemacs-21.4.19-db.patch - - # Fix constent crashes with the combination native sound,linux,wav - epatch "${FILESDIR}"/xemacs-21.4.20-linuxplay.patch - - # Fix font-lock-warning-face not being exported, needed for - # gentoo-syntax - epatch "${FILESDIR}"/font-lock-warning-face.patch - - # Run autoconf. XEmacs tries to be smart by providing a stub - # configure.ac file for autoconf 2.59 but this throws our - # autotools eclass so it must be removed first. - rm "${S}"/configure.ac - eautoconf - - use neXt && cp "${WORKDIR}"/NeXT.XEmacs/xemacs-icons/* "${S}"/etc/toolbar/ -} - -src_compile() { - local myconf="" - - if use X; then - - myconf="${myconf} --with-widgets=athena" - myconf="${myconf} --with-dialogs=athena" - myconf="${myconf} --with-menubars=lucid" - myconf="${myconf} --with-scrollbars=lucid" - if use motif ; then - myconf="--with-widgets=motif" - myconf="${myconf} --with-dialogs=motif" - myconf="${myconf} --with-scrollbars=motif" - myconf="${myconf} --with-menubars=lucid" - fi - if use athena ; then - myconf="--with-scrollbars=athena" - fi - - if use Xaw3d; then - myconf="${myconf} --with-athena=3d" - elif use neXt; then - myconf="${myconf} --with-athena=next" - else - myconf="${myconf} --with-athena=xaw" - fi - - use dnd && myconf="${myconf} --with-dragndrop --with-offix" - - use tiff && myconf="${myconf} --with-tiff" || - myconf="${myconf} --without-tiff" - use png && myconf="${myconf} --with-png" || - myconf="${myconf} --without-png" - use jpeg && myconf="${myconf} --with-jpeg" || - myconf="${myconf} --without-jpeg" - use xface && myconf="${myconf} --with-xface" || - myconf="${myconf} --without-xface" - - else - myconf="${myconf} - --without-x - --without-xpm - --without-dragndrop - --with-gif=no" - fi - - if use mule ; then - myconf="${myconf} --with-mule" - - if use xim ; then - if use motif ; then - myconf="${myconf} --with-xim=motif" - else - myconf="${myconf} --with-xim=xlib" - fi - else - myconf="${myconf} --with-xim=no" - fi - - use canna && myconf="${myconf} --with-canna" || - myconf="${myconf} --without-canna" - use freewnn && myconf="${myconf} --with-wnn" || - myconf="${myconf} --without-wnn" - fi - - # This determines the type of sounds we are playing - local soundconf="native" - - # This determines how these sounds should be played - use nas && soundconf="${soundconf},nas" - use esd && soundconf="${soundconf},esd" - - myconf="${myconf} --with-sound=${soundconf}" - - if use gdbm || use berkdb ; then - use gdbm && mydb="gdbm" - - use berkdb && mydb="${mydb},berkdb" - - myconf="${myconf} --with-database=${mydb}" - else - myconf="${myconf} --without-database" - fi - - # fixes #21264, this should be fixed in 21.4.21 and has been fixed - # in 21.5 for sure. - use alpha && myconf="${myconf} --with-system-malloc" - use ppc64 && myconf="${myconf} --with-system-malloc" - use ia64 && myconf="${myconf} --with-system-malloc" - - # Don't use econf because it uses options which this configure - # script does not understand (like --host). - ./configure ${myconf} ${EXTRA_ECONF} \ - $(use_with gif ) \ - $(use_with gpm ) \ - $(use_with postgres postgresql ) \ - $(use_with ldap ) \ - $(use_with eolconv file-coding ) \ - $(use_with pop ) \ - --prefix=/usr \ - --with-ncurses \ - --with-msw=no \ - --mail-locking=flock \ - --with-site-lisp=yes \ - --with-site-modules=yes \ - || die - - emake || die -} - -src_install() { - make prefix="${D}"/usr \ - mandir="${D}"/usr/share/man/man1 \ - infodir="${D}"/usr/share/info \ - install gzip-el || die - - # Rename some applications installed in bin so that it is clear - # which application installed them and so that conflicting - # packages (emacs) can't clobber the actual applications. - # Addresses bug #62991. - for i in b2m ctags etags rcs-checkin ; do - mv "${D}"/usr/bin/${i} "${D}"/usr/bin/${i}-xemacs || die "mv ${i} failed" - done - - # rename man pages - for i in ctags etags; do - mv "${D}"/usr/share/man/man1/${i}{,-xemacs}.1 || die "mv ${i}.1 failed" - done - - # install base packages directories - dodir /usr/lib/xemacs/xemacs-packages/ - dodir /usr/lib/xemacs/site-packages/ - dodir /usr/lib/xemacs/site-modules/ - dodir /usr/lib/xemacs/site-lisp/ - - if use mule; - then - dodir /usr/lib/xemacs/mule-packages - fi - - # remove extraneous info files - cd "${D}"/usr/share/info - rm -f dir info.info texinfo* termcap* standards* - - cd "${S}" - dodoc BUGS CHANGES-* ChangeLog GETTING* INSTALL PROBLEMS README* - dodoc "${FILESDIR}"/README.Gentoo - - insinto /usr/share/pixmaps - newins "${S}"/etc/${PN}-icon.xpm ${PN}.xpm - - insinto /usr/share/applications - doins "${FILESDIR}"/${PN}.desktop -} - -pkg_postinst() { - eselect emacs update --if-unset -} - -pkg_postrm() { - eselect emacs update --if-unset -} diff --git a/app-editors/xemacs/xemacs-21.4.20-r5.ebuild b/app-editors/xemacs/xemacs-21.4.20-r5.ebuild deleted file mode 100644 index bd9101974b83..000000000000 --- a/app-editors/xemacs/xemacs-21.4.20-r5.ebuild +++ /dev/null @@ -1,248 +0,0 @@ -# Copyright 1999-2007 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-editors/xemacs/xemacs-21.4.20-r5.ebuild,v 1.2 2007/10/10 07:27:26 ulm Exp $ - -# Note: xemacs currently does not work with a hardened profile. If you -# want to use xemacs on a hardened profile then compile with the -# -nopie flag in CFLAGS or help fix bug #75028. - -export WANT_AUTOCONF="2.1" -inherit autotools eutils - -DESCRIPTION="highly customizable open source text editor and application development system" -HOMEPAGE="http://www.xemacs.org/" -SRC_URI="http://ftp.xemacs.org/xemacs-21.4/${P}.tar.gz - http://www.malfunction.de/afterstep/files/NeXT_XEmacs.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86" -IUSE="eolconv esd gif gpm pop postgres ldap xface nas dnd X jpeg tiff png mule motif freewnn canna xim athena neXt Xaw3d gdbm berkdb" - -X_DEPEND="x11-libs/libXt x11-libs/libXmu x11-libs/libXext x11-misc/xbitmaps" - -DEPEND="virtual/libc - !virtual/xemacs - berkdb? ( sys-libs/db ) - gdbm? ( >=sys-libs/gdbm-1.8.3 ) - >=sys-libs/zlib-1.1.4 - >=dev-libs/openssl-0.9.6 - >=media-libs/audiofile-0.2.3 - gpm? ( >=sys-libs/gpm-1.19.6 ) - postgres? ( >=dev-db/postgresql-7.2 ) - ldap? ( net-nds/openldap ) - esd? ( media-sound/esound ) - nas? ( media-libs/nas ) - X? ( $X_DEPEND !Xaw3d? ( !neXt? ( x11-libs/libXaw ) ) ) - dnd? ( x11-libs/dnd ) - motif? ( >=x11-libs/openmotif-2.1.30 ) - athena? ( x11-libs/libXaw ) - Xaw3d? ( x11-libs/Xaw3d ) - neXt? ( x11-libs/neXtaw ) - xface? ( media-libs/compface ) - tiff? ( media-libs/tiff ) - png? ( =media-libs/libpng-1.2* ) - jpeg? ( media-libs/jpeg ) - canna? ( app-i18n/canna ) - !amd64? ( freewnn? ( app-i18n/freewnn ) ) - >=sys-libs/ncurses-5.2 - >=app-admin/eselect-emacs-0.7-r1" - -PDEPEND="app-xemacs/xemacs-base - mule? ( app-xemacs/mule-base )" - -PROVIDE="virtual/xemacs" - -src_unpack() { - unpack ${P}.tar.gz - use neXt && unpack NeXT_XEmacs.tar.gz - - cd "${S}" - epatch "${FILESDIR}"/xemacs-21.4.19-texi.patch - - # see bug 58350, 102540 and 143580 - epatch "${FILESDIR}"/xemacs-21.4.19-db.patch - - # Fix constent crashes with the combination native sound,linux,wav - epatch "${FILESDIR}"/xemacs-21.4.20-linuxplay.patch - - # Fix font-lock-warning-face not being exported, needed for - # gentoo-syntax - epatch "${FILESDIR}"/font-lock-warning-face.patch - - # font-lock-keywords is needed for gentoo-syntax and is available - # in 21.5. It has been approved for the next 21.4 release, but not - # yet committed. - epatch "${FILESDIR}"/font-lock-keywords.patch - - # Run autoconf. XEmacs tries to be smart by providing a stub - # configure.ac file for autoconf 2.59 but this throws our - # autotools eclass so it must be removed first. - rm "${S}"/configure.ac - eautoconf - - use neXt && cp "${WORKDIR}"/NeXT.XEmacs/xemacs-icons/* "${S}"/etc/toolbar/ -} - -src_compile() { - local myconf="" - - if use X; then - - myconf="${myconf} --with-widgets=athena" - myconf="${myconf} --with-dialogs=athena" - myconf="${myconf} --with-menubars=lucid" - myconf="${myconf} --with-scrollbars=lucid" - if use motif ; then - myconf="--with-widgets=motif" - myconf="${myconf} --with-dialogs=motif" - myconf="${myconf} --with-scrollbars=motif" - myconf="${myconf} --with-menubars=lucid" - fi - if use athena ; then - myconf="--with-scrollbars=athena" - fi - - if use Xaw3d; then - myconf="${myconf} --with-athena=3d" - elif use neXt; then - myconf="${myconf} --with-athena=next" - else - myconf="${myconf} --with-athena=xaw" - fi - - use dnd && myconf="${myconf} --with-dragndrop --with-offix" - - use tiff && myconf="${myconf} --with-tiff" || - myconf="${myconf} --without-tiff" - use png && myconf="${myconf} --with-png" || - myconf="${myconf} --without-png" - use jpeg && myconf="${myconf} --with-jpeg" || - myconf="${myconf} --without-jpeg" - use xface && myconf="${myconf} --with-xface" || - myconf="${myconf} --without-xface" - - else - myconf="${myconf} - --without-x - --without-xpm - --without-dragndrop - --with-gif=no" - fi - - if use mule ; then - myconf="${myconf} --with-mule" - - if use xim ; then - if use motif ; then - myconf="${myconf} --with-xim=motif" - else - myconf="${myconf} --with-xim=xlib" - fi - else - myconf="${myconf} --with-xim=no" - fi - - use canna && myconf="${myconf} --with-canna" || - myconf="${myconf} --without-canna" - use freewnn && myconf="${myconf} --with-wnn" || - myconf="${myconf} --without-wnn" - fi - - # This determines the type of sounds we are playing - local soundconf="native" - - # This determines how these sounds should be played - use nas && soundconf="${soundconf},nas" - use esd && soundconf="${soundconf},esd" - - myconf="${myconf} --with-sound=${soundconf}" - - if use gdbm || use berkdb ; then - use gdbm && mydb="gdbm" - - use berkdb && mydb="${mydb},berkdb" - - myconf="${myconf} --with-database=${mydb}" - else - myconf="${myconf} --without-database" - fi - - # fixes #21264, this should be fixed in 21.4.21 and has been fixed - # in 21.5 for sure. - use alpha && myconf="${myconf} --with-system-malloc" - use ppc64 && myconf="${myconf} --with-system-malloc" - use ia64 && myconf="${myconf} --with-system-malloc" - - # Don't use econf because it uses options which this configure - # script does not understand (like --host). - ./configure ${myconf} ${EXTRA_ECONF} \ - $(use_with gif ) \ - $(use_with gpm ) \ - $(use_with postgres postgresql ) \ - $(use_with ldap ) \ - $(use_with eolconv file-coding ) \ - $(use_with pop ) \ - --prefix=/usr \ - --with-ncurses \ - --with-msw=no \ - --mail-locking=flock \ - --with-site-lisp=yes \ - --with-site-modules=yes \ - || die - - emake || die -} - -src_install() { - make prefix="${D}"/usr \ - mandir="${D}"/usr/share/man/man1 \ - infodir="${D}"/usr/share/info \ - install gzip-el || die - - # Rename some applications installed in bin so that it is clear - # which application installed them and so that conflicting - # packages (emacs) can't clobber the actual applications. - # Addresses bug #62991. - for i in b2m ctags etags rcs-checkin ; do - mv "${D}"/usr/bin/${i} "${D}"/usr/bin/${i}-xemacs || die "mv ${i} failed" - done - - # rename man pages - for i in ctags etags; do - mv "${D}"/usr/share/man/man1/${i}{,-xemacs}.1 || die "mv ${i}.1 failed" - done - - # install base packages directories - dodir /usr/lib/xemacs/xemacs-packages/ - dodir /usr/lib/xemacs/site-packages/ - dodir /usr/lib/xemacs/site-modules/ - dodir /usr/lib/xemacs/site-lisp/ - - if use mule; - then - dodir /usr/lib/xemacs/mule-packages - fi - - # remove extraneous info files - cd "${D}"/usr/share/info - rm -f dir info.info texinfo* termcap* standards* - - cd "${S}" - dodoc BUGS CHANGES-* ChangeLog GETTING* INSTALL PROBLEMS README* - dodoc "${FILESDIR}"/README.Gentoo - - insinto /usr/share/pixmaps - newins "${S}"/etc/${PN}-icon.xpm ${PN}.xpm - - insinto /usr/share/applications - doins "${FILESDIR}"/${PN}.desktop -} - -pkg_postinst() { - eselect emacs update --if-unset -} - -pkg_postrm() { - eselect emacs update --if-unset -} |