From b398233fbdc6f81348c8a6b845bdc0bc096f37e0 Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Tue, 7 Aug 2012 14:46:13 -0500
Subject: emacs 24.1 -new

---
 abs/extra/emacs/PKGBUILD         | 46 ++++++++++++++++++++
 abs/extra/emacs/__changelog      |  1 +
 abs/extra/emacs/emacs.install    | 32 ++++++++++++++
 abs/extra/emacs/glibc_gets.patch | 90 ++++++++++++++++++++++++++++++++++++++++
 4 files changed, 169 insertions(+)
 create mode 100644 abs/extra/emacs/PKGBUILD
 create mode 100644 abs/extra/emacs/__changelog
 create mode 100644 abs/extra/emacs/emacs.install
 create mode 100644 abs/extra/emacs/glibc_gets.patch

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])
-- 
cgit v0.12

