diff options
Diffstat (limited to 'abs/extra/emacs')
| -rw-r--r-- | abs/extra/emacs/PKGBUILD | 46 | ||||
| -rw-r--r-- | abs/extra/emacs/__changelog | 1 | ||||
| -rw-r--r-- | abs/extra/emacs/emacs.install | 32 | ||||
| -rw-r--r-- | abs/extra/emacs/glibc_gets.patch | 90 | 
4 files changed, 169 insertions, 0 deletions
| diff --git a/abs/extra/emacs/PKGBUILD b/abs/extra/emacs/PKGBUILD new file mode 100644 index 0000000..7983759 --- /dev/null +++ b/abs/extra/emacs/PKGBUILD @@ -0,0 +1,46 @@ +# $Id: PKGBUILD 161436 2012-06-11 15:03:29Z juergen $ +# Maintainer: Juergen Hoetzel <juergen@archlinux.org> +# Contributor: Renchi Raju <renchi@green.tam.uiuc.edu> + +pkgname=emacs +pkgver=24.1 +pkgrel=2 +pkgdesc="The extensible, customizable, self-documenting real-time display editor" +arch=('i686' 'x86_64') +url="http://www.gnu.org/software/emacs/emacs.html" +license=('GPL3') +depends=('librsvg' 'gpm' 'giflib' 'libxpm' 'gtk2' 'hicolor-icon-theme' 'gconf' 'desktop-file-utils' 'alsa-lib' 'imagemagick') +install=emacs.install +source=(ftp://ftp.gnu.org/gnu/emacs/$pkgname-$pkgver.tar.bz2{,.sig} glibc_gets.patch) + + +build() { +  cd "$srcdir"/$pkgname-$pkgver +   patch -Np1 < ${srcdir}/glibc_gets.patch  ||exit 1 +   autoreconf -i -I m4 +  ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \ +    --localstatedir=/var --with-x-toolkit=gtk --with-xft +  make +} + +package() { +  cd "$srcdir"/$pkgname-$pkgver + +  make DESTDIR="$pkgdir" install + +  # remove conflict with ctags package +  mv "$pkgdir"/usr/bin/{ctags,ctags.emacs} +  mv "$pkgdir"/usr/share/man/man1/{ctags.1.gz,ctags.emacs.1} +  # fix all the 777 perms on directories +  find "$pkgdir"/usr/share/emacs/$_majorver -type d -exec chmod 755 {} \; +  # fix user/root permissions on usr/share files +  find "$pkgdir"/usr/share/emacs/$_majorver -exec chown root:root {} \; +  # fix perms on /var/games +  chmod 775 "$pkgdir"/var/games +  chmod 775 "$pkgdir"/var/games/emacs +  chmod 664 "$pkgdir"/var/games/emacs/* +  chown -R root:games "$pkgdir"/var/games +} +md5sums=('8ba0932c498bc8fb10d7ddba52227e5b' +         'c303d5c0bd0f7ea28acd14c9738faff4' +         '3a811967f16d67a6109101ed0da909d2') diff --git a/abs/extra/emacs/__changelog b/abs/extra/emacs/__changelog new file mode 100644 index 0000000..1aff35f --- /dev/null +++ b/abs/extra/emacs/__changelog @@ -0,0 +1 @@ +gets patch diff --git a/abs/extra/emacs/emacs.install b/abs/extra/emacs/emacs.install new file mode 100644 index 0000000..d84f1de --- /dev/null +++ b/abs/extra/emacs/emacs.install @@ -0,0 +1,32 @@ +ICON_PATH=usr/share/icons/hicolor +INFO_DIR=usr/share/info + +INFO_FILES=(ada-mode auth autotype calc ccmode cl dbus dired-x ebrowse +ede ediff edt efaq eieio eintr elisp emacs emacs-mime epa erc eshell eudc flymake +forms gnus idlwave info mairix-el message mh-e newsticker nxml-mode +org pcl-cvs pgg rcirc reftex remember sasl sc semantic ses sieve smtpmail +speedbar tramp url vip viper widget woman) + +post_install() { +  gtk-update-icon-cache -q -t -f ${ICON_PATH} +  update-desktop-database -q + +  [[ -x usr/bin/install-info ]] || return 0 +  for f in ${INFO_FILES[@]}; do +    install-info ${INFO_DIR}/$f.gz ${INFO_DIR}/dir 2> /dev/null +  done +} + +post_upgrade() { +  post_install $1 +} + +pre_remove() { +  gtk-update-icon-cache -q -t -f ${ICON_PATH} +  update-desktop-database -q + +  [[ -x usr/bin/install-info ]] || return 0 +  for f in ${INFO_FILES[@]}; do +    install-info --delete ${INFO_DIR}/$f.gz ${INFO_DIR}/dir 2> /dev/null +  done +} diff --git a/abs/extra/emacs/glibc_gets.patch b/abs/extra/emacs/glibc_gets.patch new file mode 100644 index 0000000..26b71f6 --- /dev/null +++ b/abs/extra/emacs/glibc_gets.patch @@ -0,0 +1,90 @@ +--- emacs-24.1-orig/lib/gnulib.mk ++++ emacs-24.1/lib/gnulib.mk +@@ -599,7 +624,6 @@ + 	      -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \ + 	      -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \ + 	      -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \ +-	      -e 's/@''GNULIB_GETS''@/$(GNULIB_GETS)/g' \ + 	      -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \ + 	      -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \ + 	      -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \ +--- emacs-24.1-orig/lib/stdio.in.h ++++ emacs-24.1/lib/stdio.in.h +@@ -699,22 +699,11 @@ + # endif + #endif +  +-#if @GNULIB_GETS@ +-# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ +-#  if !(defined __cplusplus && defined GNULIB_NAMESPACE) +-#   undef gets +-#   define gets rpl_gets +-#  endif +-_GL_FUNCDECL_RPL (gets, char *, (char *s) _GL_ARG_NONNULL ((1))); +-_GL_CXXALIAS_RPL (gets, char *, (char *s)); +-# else +-_GL_CXXALIAS_SYS (gets, char *, (char *s)); +-#  undef gets +-# endif +-_GL_CXXALIASWARN (gets); + /* It is very rare that the developer ever has full control of stdin, +-   so any use of gets warrants an unconditional warning.  Assume it is +-   always declared, since it is required by C89.  */ ++   so any use of gets warrants an unconditional warning; besides, C11 ++   removed it.  */ ++#undef gets ++#if HAVE_RAW_DECL_GETS + _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); + #endif +  +@@ -1054,9 +1043,9 @@ + # endif + #endif +  +-/* Some people would argue that sprintf should be handled like gets +-   (for example, OpenBSD issues a link warning for both functions), +-   since both can cause security holes due to buffer overruns. ++/* Some people would argue that all sprintf uses should be warned about ++   (for example, OpenBSD issues a link warning for it), ++   since it can cause security holes due to buffer overruns. +    However, we believe that sprintf can be used safely, and is more +    efficient than snprintf in those safe cases; and as proof of our +    belief, we use sprintf in several gnulib modules.  So this header +--- emacs-24.1-orig/m4/stdio_h.m4 ++++ emacs-24.1/m4/stdio_h.m4 +@@ -1,4 +1,4 @@ +-# stdio_h.m4 serial 40 ++# stdio_h.m4 serial 41 + dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -18,7 +18,6 @@ +   GNULIB_GETC=1 +   GNULIB_GETCHAR=1 +   GNULIB_FGETS=1 +-  GNULIB_GETS=1 +   GNULIB_FREAD=1 +   dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c" +   dnl "expected source file, required through AC_LIBSOURCES, not found". It is +@@ -72,10 +71,10 @@ +  +   dnl Check for declarations of anything we want to poison if the +   dnl corresponding gnulib module is not in use, and which is not +-  dnl guaranteed by C89. ++  dnl guaranteed by both C89 and C11. +   gl_WARN_ON_USE_PREPARE([[#include <stdio.h> +-    ]], [dprintf fpurge fseeko ftello getdelim getline pclose popen renameat +-    snprintf tmpfile vdprintf vsnprintf]) ++    ]], [dprintf fpurge fseeko ftello getdelim getline gets pclose popen ++    renameat snprintf tmpfile vdprintf vsnprintf]) + ]) +  + AC_DEFUN([gl_STDIO_MODULE_INDICATOR], +@@ -113,7 +112,6 @@ +   GNULIB_GETCHAR=0;              AC_SUBST([GNULIB_GETCHAR]) +   GNULIB_GETDELIM=0;             AC_SUBST([GNULIB_GETDELIM]) +   GNULIB_GETLINE=0;              AC_SUBST([GNULIB_GETLINE]) +-  GNULIB_GETS=0;                 AC_SUBST([GNULIB_GETS]) +   GNULIB_OBSTACK_PRINTF=0;       AC_SUBST([GNULIB_OBSTACK_PRINTF]) +   GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX]) +   GNULIB_PCLOSE=0;               AC_SUBST([GNULIB_PCLOSE]) | 
