Index: branches/fc19-dev/server/common/oursrc/nss_nonlocal/Makefile.am
===================================================================
--- branches/fc19-dev/server/common/oursrc/nss_nonlocal/Makefile.am	(revision 2431)
+++ branches/fc19-dev/server/common/oursrc/nss_nonlocal/Makefile.am	(revision 2434)
@@ -2,5 +2,5 @@
 libnss_nonlocal_la_SOURCES = \
     nonlocal-passwd.c nonlocal-group.c nonlocal-shadow.c \
-    nonlocal.h nsswitch-internal.h
+    nonlocal.h nsswitch-internal.h walk_nss.h
 libnss_nonlocal_la_LDFLAGS = \
     -version-info 2:0:0 \
@@ -11,2 +11,5 @@
 	rm -f $(DESTDIR)$(libdir)/libnss_nonlocal.so
 	rm -f $(DESTDIR)$(libdir)/libnss_nonlocal.la
+
+uninstall-local:
+	rm -f $(DESTDIR)$(libdir)/libnss_nonlocal.so.*
Index: branches/fc19-dev/server/common/oursrc/nss_nonlocal/configure.ac
===================================================================
--- branches/fc19-dev/server/common/oursrc/nss_nonlocal/configure.ac	(revision 2431)
+++ branches/fc19-dev/server/common/oursrc/nss_nonlocal/configure.ac	(revision 2434)
@@ -1,3 +1,3 @@
-AC_INIT([nss_nonlocal], [2.0], [andersk@mit.edu])
+AC_INIT([nss_nonlocal], [2.1], [andersk@mit.edu])
 AC_CANONICAL_TARGET
 AM_INIT_AUTOMAKE([-Wall -Werror foreign])
@@ -7,5 +7,5 @@
 AC_DISABLE_STATIC
 AC_PROG_CC
-AC_PROG_INSTALL
+m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
 AC_PROG_LIBTOOL
 
Index: branches/fc19-dev/server/common/oursrc/nss_nonlocal/nonlocal-group.c
===================================================================
--- branches/fc19-dev/server/common/oursrc/nss_nonlocal/nonlocal-group.c	(revision 2431)
+++ branches/fc19-dev/server/common/oursrc/nss_nonlocal/nonlocal-group.c	(revision 2434)
@@ -25,16 +25,18 @@
 
 #define _GNU_SOURCE
+
 #include <sys/types.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
 #include <dlfcn.h>
-#include <stdio.h>
-#include <syslog.h>
 #include <errno.h>
-#include <pwd.h>
 #include <grp.h>
 #include <nss.h>
+#include <pwd.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+#include <syslog.h>
+#include <unistd.h>
+
 #include "nsswitch-internal.h"
 #include "nonlocal.h"
@@ -170,4 +172,5 @@
 }
 
+static bool grent_initialized = false;
 static service_user *grent_startp, *grent_nip;
 static void *grent_fct_start;
@@ -194,7 +197,10 @@
 	return status;
 
-    if (grent_fct_start == NULL)
+    if (!grent_initialized) {
 	__nss_group_nonlocal_lookup(&grent_startp, grent_fct_name,
 				    &grent_fct_start);
+	__sync_synchronize();
+	grent_initialized = true;
+    }
     grent_nip = grent_startp;
     grent_fct.ptr = grent_fct_start;
@@ -208,5 +214,5 @@
     const struct walk_nss w = {
 	.lookup = &__nss_group_nonlocal_lookup, .fct_name = "endgrent",
-	.status = &status
+	.status = &status, .all_values = 1,
     };
     const __typeof__(&_nss_nonlocal_endgrent) self = NULL;
@@ -356,5 +362,5 @@
     const struct walk_nss w = {
 	.lookup = &__nss_group_nonlocal_lookup, .fct_name = "initgroups_dyn",
-	.status = &status, .errnop = errnop
+	.status = &status, .all_values = 1, .errnop = errnop
     };
     const __typeof__(&_nss_nonlocal_initgroups_dyn) self = NULL;
@@ -445,5 +451,7 @@
 #include "walk_nss.h"
 #undef args
-    if (status != NSS_STATUS_SUCCESS)
+    if (status == NSS_STATUS_NOTFOUND || status == NSS_STATUS_UNAVAIL)
+	return NSS_STATUS_SUCCESS;
+    else if (status != NSS_STATUS_SUCCESS)
         return status;
 
Index: branches/fc19-dev/server/common/oursrc/nss_nonlocal/nonlocal-passwd.c
===================================================================
--- branches/fc19-dev/server/common/oursrc/nss_nonlocal/nonlocal-passwd.c	(revision 2431)
+++ branches/fc19-dev/server/common/oursrc/nss_nonlocal/nonlocal-passwd.c	(revision 2434)
@@ -26,16 +26,17 @@
 
 #define _GNU_SOURCE
+
 #include <sys/types.h>
+#include <dlfcn.h>
+#include <errno.h>
+#include <nss.h>
+#include <pwd.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+#include <syslog.h>
 #include <unistd.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-#include <dlfcn.h>
-#include <stdio.h>
-#include <syslog.h>
-#include <errno.h>
-#include <pwd.h>
-#include <grp.h>
-#include <nss.h>
+
 #include "nsswitch-internal.h"
 #include "nonlocal.h"
@@ -162,4 +163,5 @@
 
 
+static bool pwent_initialized = false;
 static service_user *pwent_startp, *pwent_nip;
 static void *pwent_fct_start;
@@ -186,7 +188,10 @@
 	return status;
 
-    if (pwent_fct_start == NULL)
+    if (!pwent_initialized) {
 	__nss_passwd_nonlocal_lookup(&pwent_startp, pwent_fct_name,
 				     &pwent_fct_start);
+	__sync_synchronize();
+	pwent_initialized = true;
+    }
     pwent_nip = pwent_startp;
     pwent_fct.ptr = pwent_fct_start;
@@ -200,5 +205,5 @@
     const struct walk_nss w = {
 	.lookup = &__nss_passwd_nonlocal_lookup, .fct_name = "endpwent",
-	.status = &status
+	.status = &status, .all_values = 1,
     };
     const __typeof__(&_nss_nonlocal_endpwent) self = NULL;
Index: branches/fc19-dev/server/common/oursrc/nss_nonlocal/nonlocal-shadow.c
===================================================================
--- branches/fc19-dev/server/common/oursrc/nss_nonlocal/nonlocal-shadow.c	(revision 2431)
+++ branches/fc19-dev/server/common/oursrc/nss_nonlocal/nonlocal-shadow.c	(revision 2434)
@@ -24,15 +24,15 @@
 
 #define _GNU_SOURCE
+
 #include <sys/types.h>
-#include <unistd.h>
+#include <dlfcn.h>
+#include <errno.h>
+#include <nss.h>
+#include <shadow.h>
+#include <stdbool.h>
+#include <stddef.h>
 #include <stdlib.h>
-#include <stdint.h>
 #include <string.h>
-#include <dlfcn.h>
-#include <stdio.h>
 #include <syslog.h>
-#include <errno.h>
-#include <shadow.h>
-#include <nss.h>
 
 #include "nsswitch-internal.h"
@@ -59,4 +59,5 @@
 
 
+static bool spent_initialized = false;
 static service_user *spent_startp, *spent_nip;
 static void *spent_fct_start;
@@ -83,7 +84,10 @@
 	return status;
 
-    if (spent_fct_start == NULL)
+    if (!spent_initialized) {
 	__nss_shadow_nonlocal_lookup(&spent_startp, spent_fct_name,
 				     &spent_fct_start);
+	__sync_synchronize();
+	spent_initialized = true;
+    }
     spent_nip = spent_startp;
     spent_fct.ptr = spent_fct_start;
@@ -114,4 +118,9 @@
 {
     enum nss_status status;
+
+    char *nonlocal_ignore = getenv(NONLOCAL_IGNORE_ENV);
+    if (nonlocal_ignore != NULL && nonlocal_ignore[0] != '\0')
+	return NSS_STATUS_UNAVAIL;
+
     if (spent_nip == NULL) {
 	status = _nss_nonlocal_setspent(0);
Index: branches/fc19-dev/server/common/oursrc/nss_nonlocal/nonlocal.h
===================================================================
--- branches/fc19-dev/server/common/oursrc/nss_nonlocal/nonlocal.h	(revision 2431)
+++ branches/fc19-dev/server/common/oursrc/nss_nonlocal/nonlocal.h	(revision 2434)
@@ -50,4 +50,5 @@
 struct walk_nss {
     enum nss_status *status;
+    int all_values;
     int (*lookup)(service_user **ni, const char *fct_name,
 		  void **fctp) internal_function;
Index: branches/fc19-dev/server/common/oursrc/nss_nonlocal/walk_nss.h
===================================================================
--- branches/fc19-dev/server/common/oursrc/nss_nonlocal/walk_nss.h	(revision 2431)
+++ branches/fc19-dev/server/common/oursrc/nss_nonlocal/walk_nss.h	(revision 2434)
@@ -1,5 +1,31 @@
+/*
+ * walk_nss.h
+ * NSS walking template for nss_nonlocal proxy
+ *
+ * Copyright © 2011 Anders Kaseorg <andersk@mit.edu> and Tim Abbott
+ * <tabbott@mit.edu>
+ *
+ * This file is part of nss_nonlocal.
+ *
+ * nss_nonlocal is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * nss_nonlocal is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with nss_nonlocal; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301  USA
+ */
+
 {
-    static service_user *startp = NULL;
-    static void *fct_start = NULL;
+    static bool initialized = false;
+    static service_user *startp;
+    static void *fct_start;
 
     service_user *nip;
@@ -10,8 +36,11 @@
     int old_errno = errno;
 
-    if (fct_start == NULL &&
-	w.lookup(&startp, w.fct_name, &fct_start) != 0) {
-	*w.status = NSS_STATUS_UNAVAIL;
-	goto walk_nss_out;
+    if (!initialized) {
+	if (w.lookup(&startp, w.fct_name, &fct_start) != 0) {
+	    *w.status = NSS_STATUS_UNAVAIL;
+	    goto walk_nss_out;
+	}
+	__sync_synchronize();
+	initialized = true;
     }
 
@@ -51,5 +80,6 @@
 	    goto walk_nss_morebuf;
 	}
-    } while (__nss_next(&nip, w.fct_name, &fct.ptr, *w.status, 0) == 0);
+    } while (__nss_next(&nip, w.fct_name, &fct.ptr, *w.status, w.all_values) ==
+	     0);
 
     if (w.buf != NULL && *w.status != NSS_STATUS_SUCCESS) {
Index: branches/fc19-dev/server/common/patches/openafs-TryEvictVCache-crash.patch
===================================================================
--- branches/fc19-dev/server/common/patches/openafs-TryEvictVCache-crash.patch	(revision 2434)
+++ branches/fc19-dev/server/common/patches/openafs-TryEvictVCache-crash.patch	(revision 2434)
@@ -0,0 +1,88 @@
+From eafc370c0eba7949d85547ebc27574aa106d3355 Mon Sep 17 00:00:00 2001
+From: Anders Kaseorg <andersk@mit.edu>
+Date: Tue, 7 May 2013 00:27:33 -0400
+Subject: [PATCH] =?UTF-8?q?Linux:=20osi=5FTryEvictVCache:=20Don=E2=80=99t?=
+ =?UTF-8?q?=20skip=20the=20first=20dentry=20if=20D=5FALIAS=5FIS=5FHLIST?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+An hlist doesn’t begin with a sentinel like a list does, so the old
+code would skip the first dentry or crash with a NULL dereference if
+there wasn’t one.  Use the kernel’s list_for_each_entry or
+hlist_for_each_entry macros instead of trying to do it manually.
+
+Should fix a crash observed by Alex Chernyakhovsky on kernel 3.6 and
+newer.
+
+Change-Id: I6d7bd190013a0250ca896af8d5182df55a3376b0
+Signed-off-by: Anders Kaseorg <andersk@mit.edu>
+---
+ src/afs/LINUX/osi_vcache.c | 30 +++++++++---------------------
+ 1 file changed, 9 insertions(+), 21 deletions(-)
+
+diff --git a/src/afs/LINUX/osi_vcache.c b/src/afs/LINUX/osi_vcache.c
+index dc3685b..99aab91 100644
+--- a/src/afs/LINUX/osi_vcache.c
++++ b/src/afs/LINUX/osi_vcache.c
+@@ -19,10 +19,8 @@ osi_TryEvictVCache(struct vcache *avc, int *slept, int defersleep) {
+ 
+     struct dentry *dentry;
+     struct inode *inode = AFSTOV(avc);
+-#if defined(D_ALIAS_IS_HLIST)
+-    struct hlist_node *cur, *head, *list_end;
+-#else
+-    struct list_head *cur, *head, *list_end;
++#if defined(D_ALIAS_IS_HLIST) && !defined(HLIST_ITERATOR_NO_NODE)
++    struct hlist_node *p;
+ #endif
+ 
+     /* First, see if we can evict the inode from the dcache */
+@@ -33,13 +31,9 @@ osi_TryEvictVCache(struct vcache *avc, int *slept, int defersleep) {
+ 
+ #if defined(HAVE_DCACHE_LOCK)
+         spin_lock(&dcache_lock);
+-	head = &inode->i_dentry;
+ 
+ restart:
+-        cur = head;
+-	while ((cur = cur->next) != head) {
+-	    dentry = list_entry(cur, struct dentry, d_alias);
+-
++	list_for_each_entry(dentry, &inode->i_dentry, d_alias) {
+ 	    if (d_unhashed(dentry))
+ 		continue;
+ 	    dget_locked(dentry);
+@@ -57,23 +51,17 @@ restart:
+ 	spin_unlock(&dcache_lock);
+ #else /* HAVE_DCACHE_LOCK */
+ 	spin_lock(&inode->i_lock);
+-#if defined(D_ALIAS_IS_HLIST)
+-	head = inode->i_dentry.first;
+-	list_end = NULL;
+-#else
+-	head = &inode->i_dentry;
+-	list_end = head;
+-#endif
+ 
+ restart:
+-	cur = head;
+-	while ((cur = cur->next) != list_end) {
+ #if defined(D_ALIAS_IS_HLIST)
+-	    dentry = hlist_entry(cur, struct dentry, d_alias);
++# if defined(HLIST_ITERATOR_NO_NODE)
++	hlist_for_each_entry(dentry, &inode->i_dentry, d_alias) {
++# else
++	hlist_for_each_entry(dentry, p, &inode->i_dentry, d_alias) {
++# endif
+ #else
+-	    dentry = list_entry(cur, struct dentry, d_alias);
++	list_for_each_entry(dentry, &inode->i_dentry, d_alias) {
+ #endif
+-
+ 	    spin_lock(&dentry->d_lock);
+ 	    if (d_unhashed(dentry)) {
+ 		spin_unlock(&dentry->d_lock);
+-- 
+1.8.3.rc1
+
Index: branches/fc19-dev/server/common/patches/openafs-linux-3.8-enablement.patch
===================================================================
--- branches/fc19-dev/server/common/patches/openafs-linux-3.8-enablement.patch	(revision 2431)
+++ 	(revision )
@@ -1,658 +1,0 @@
-From 5a21be491adc6acd3cc01990910c5675393be953 Mon Sep 17 00:00:00 2001
-From: Andrew Deason <adeason@sinenomine.net>
-Date: Wed, 29 Aug 2012 11:34:06 -0500
-Subject: [PATCH] LINUX: Indent osi_machdep.h maze
-
-This one isn't so bad, actually, but it still benefits from some
-indentation.
-
-Reviewed-on: http://gerrit.openafs.org/8018
-Tested-by: BuildBot <buildbot@rampaginggeek.com>
-Reviewed-by: Derrick Brashear <shadow@dementix.org>
-(cherry picked from commit 579048cb1ec24b09a869928ceb521c8db4201a43)
-
-Change-Id: I91bddcafe4141c5e6789b01cc4be1a879b6464d1
-Reviewed-on: http://gerrit.openafs.org/9330
-Tested-by: BuildBot <buildbot@rampaginggeek.com>
-Reviewed-by: Ken Dreyer <ktdreyer@ktdreyer.com>
-Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
----
- src/afs/LINUX/osi_machdep.h |  240 +++++++++++++++++++++----------------------
- 1 file changed, 120 insertions(+), 120 deletions(-)
-
-diff --git a/src/afs/LINUX/osi_machdep.h b/src/afs/LINUX/osi_machdep.h
-index a2c16f5..9260733 100644
---- a/src/afs/LINUX/osi_machdep.h
-+++ b/src/afs/LINUX/osi_machdep.h
-@@ -17,60 +17,60 @@
- 
- #include <linux/version.h>
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,4)
--#define AFS_LINUX26_ONEGROUP_ENV 1
-+# define AFS_LINUX26_ONEGROUP_ENV 1
- #endif
- 
- /* Only needed for xdr.h in glibc 2.1.x */
- #ifndef quad_t
--#define quad_t __quad_t
--#define u_quad_t __u_quad_t
-+# define quad_t __quad_t
-+# define u_quad_t __u_quad_t
- #endif
- 
- #undef getuerror
- 
- #ifdef STRUCT_TASK_STRUCT_HAS_TGID
--#define getpid() current->tgid
--#ifdef STRUCT_TASK_STRUCT_HAS_REAL_PARENT
--#define getppid() current->real_parent->tgid
--#elif defined(STRUCT_TASK_STRUCT_HAS_PARENT)
--#define getppid() current->parent->tgid
--#else
--#define getppid() current->p_opptr->tgid
--#endif
-+# define getpid() current->tgid
-+# ifdef STRUCT_TASK_STRUCT_HAS_REAL_PARENT
-+#  define getppid() current->real_parent->tgid
-+# elif defined(STRUCT_TASK_STRUCT_HAS_PARENT)
-+#  define getppid() current->parent->tgid
-+# else
-+#  define getppid() current->p_opptr->tgid
-+# endif
- #else /* !STRUCT_TASK_STRUCT_HAS_TGID */
--#define getpid() current->pid
--#ifdef STRUCT_TASK_STRUCT_HAS_REAL_PARENT
--#define getppid() current->real_parent->pid
--#elif defined(STRUCT_TASK_STRUCT_HAS_PARENT)
--#define getppid() current->parent->pid
--#else
--#define getppid() current->p_opptr->pid
--#endif
-+# define getpid() current->pid
-+# ifdef STRUCT_TASK_STRUCT_HAS_REAL_PARENT
-+#  define getppid() current->real_parent->pid
-+# elif defined(STRUCT_TASK_STRUCT_HAS_PARENT)
-+#  define getppid() current->parent->pid
-+# else
-+#  define getppid() current->p_opptr->pid
-+# endif
- #endif /* STRUCT_TASK_STRUCT_HAS_TGID */
- 
- #ifdef RECALC_SIGPENDING_TAKES_VOID
--#define RECALC_SIGPENDING(X) recalc_sigpending()
-+# define RECALC_SIGPENDING(X) recalc_sigpending()
- #else
--#define RECALC_SIGPENDING(X) recalc_sigpending(X)
-+# define RECALC_SIGPENDING(X) recalc_sigpending(X)
- #endif
- 
- #if defined (STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK)
--#define SIG_LOCK(X) spin_lock_irq(&X->sigmask_lock)
--#define SIG_UNLOCK(X) spin_unlock_irq(&X->sigmask_lock)
-+# define SIG_LOCK(X) spin_lock_irq(&X->sigmask_lock)
-+# define SIG_UNLOCK(X) spin_unlock_irq(&X->sigmask_lock)
- #elif defined (STRUCT_TASK_STRUCT_HAS_SIGHAND)
--#define SIG_LOCK(X) spin_lock_irq(&X->sighand->siglock)
--#define SIG_UNLOCK(X) spin_unlock_irq(&X->sighand->siglock)
-+# define SIG_LOCK(X) spin_lock_irq(&X->sighand->siglock)
-+# define SIG_UNLOCK(X) spin_unlock_irq(&X->sighand->siglock)
- #else
--#define SIG_LOCK(X) spin_lock_irq(&X->sig->siglock)
--#define SIG_UNLOCK(X) spin_unlock_irq(&X->sig->siglock)
-+# define SIG_LOCK(X) spin_lock_irq(&X->sig->siglock)
-+# define SIG_UNLOCK(X) spin_unlock_irq(&X->sig->siglock)
- #endif
- 
- #if defined (STRUCT_TASK_STRUCT_HAS_RLIM)
--#define TASK_STRUCT_RLIM rlim
-+# define TASK_STRUCT_RLIM rlim
- #elif defined (STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM)
--#define TASK_STRUCT_RLIM signal->rlim
-+# define TASK_STRUCT_RLIM signal->rlim
- #else
--#error Not sure what to do about rlim (should be in the Linux task struct somewhere....)
-+# error Not sure what to do about rlim (should be in the Linux task struct somewhere....)
- #endif
- 
- 
-@@ -83,13 +83,13 @@ static inline time_t osi_Time(void) {
-     return xtime.tv_sec;
- }
- #else
--#define osi_Time() (xtime.tv_sec)
-+# define osi_Time() (xtime.tv_sec)
- #endif
- 
- 
- 
- #ifdef AFS_LINUX_64BIT_KERNEL
--#define osi_GetTime(V)                                 \
-+# define osi_GetTime(V)                                 \
-     do {                                               \
-        struct timeval __afs_tv;                              \
-        do_gettimeofday(&__afs_tv);                           \
-@@ -97,7 +97,7 @@ static inline time_t osi_Time(void) {
-        (V)->tv_usec = (afs_int32)__afs_tv.tv_usec;           \
-     } while (0)
- #else
--#define osi_GetTime(V) do_gettimeofday((V))
-+# define osi_GetTime(V) do_gettimeofday((V))
- #endif
- 
- #undef gop_lookupname
-@@ -149,12 +149,12 @@ typedef struct task_struct afs_proc_t;
- typedef struct cred afs_ucred_t;
- typedef struct cred cred_t;
- 
--#define afs_cr_uid(cred) ((cred)->fsuid)
--#define afs_cr_gid(cred) ((cred)->fsgid)
--#define afs_cr_ruid(cred) ((cred)->uid)
--#define afs_cr_rgid(cred) ((cred)->gid)
--#define afs_cr_group_info(cred) ((cred)->group_info)
--#define crhold(c) (get_cred(c))
-+# define afs_cr_uid(cred) ((cred)->fsuid)
-+# define afs_cr_gid(cred) ((cred)->fsgid)
-+# define afs_cr_ruid(cred) ((cred)->uid)
-+# define afs_cr_rgid(cred) ((cred)->gid)
-+# define afs_cr_group_info(cred) ((cred)->group_info)
-+# define crhold(c) (get_cred(c))
- static inline void
- afs_set_cr_uid(cred_t *cred, uid_t uid) {
-     cred->fsuid = uid;
-@@ -176,11 +176,11 @@ afs_set_cr_group_info(cred_t *cred, struct group_info *group_info) {
-     cred->group_info = group_info;
- }
- 
--#define current_group_info() (current->cred->group_info)
--#define task_gid(task) (task->cred->gid)
--#define task_user(task) (task->cred->user)
--#define task_session_keyring(task) (task->cred->tgcred->session_keyring)
--#define current_session_keyring() (current->cred->tgcred->session_keyring)
-+# define current_group_info() (current->cred->group_info)
-+# define task_gid(task) (task->cred->gid)
-+# define task_user(task) (task->cred->user)
-+# define task_session_keyring(task) (task->cred->tgcred->session_keyring)
-+# define current_session_keyring() (current->cred->tgcred->session_keyring)
- 
- #else
- 
-@@ -194,31 +194,31 @@ typedef struct afs_cred {
- } cred_t;
- 
- typedef struct afs_cred afs_ucred_t;
--#define afs_cr_group_info(cred) ((cred)->cr_group_info)
-+# define afs_cr_group_info(cred) ((cred)->cr_group_info)
- static inline void
- afs_set_cr_group_info(cred_t *cred, struct group_info *group_info) {
-     cred->cr_group_info = group_info;
- }
- 
--#define current_group_info() (current->group_info)
--#if !defined(task_gid)
--#define task_gid(task) (task->gid)
--#endif
--#if !defined(task_uid)
--#define task_uid(task) (task->uid)
--#endif
--#define task_user(task) (task->user)
--#define task_session_keyring(task) (task->signal->session_keyring)
--#define current_session_keyring() (current->signal->session_keyring)
--#define crhold(c) atomic_inc(&(c)->cr_ref)
-+# define current_group_info() (current->group_info)
-+# if !defined(task_gid)
-+#  define task_gid(task) (task->gid)
-+# endif
-+# if !defined(task_uid)
-+#  define task_uid(task) (task->uid)
-+# endif
-+# define task_user(task) (task->user)
-+# define task_session_keyring(task) (task->signal->session_keyring)
-+# define current_session_keyring() (current->signal->session_keyring)
-+# define crhold(c) atomic_inc(&(c)->cr_ref)
- 
- #endif /* defined(STRUCT_TASK_STRUCT_HAS_CRED) */
- 
- #if !defined(current_cred)
--#define current_gid() (current->gid)
--#define current_uid() (current->uid)
--#define current_fsgid() (current->fsgid)
--#define current_fsuid() (current->fsuid)
-+# define current_gid() (current->gid)
-+# define current_uid() (current->uid)
-+# define current_fsgid() (current->fsgid)
-+# define current_fsuid() (current->fsuid)
- #endif
- 
- /* UIO manipulation */
-@@ -245,7 +245,7 @@ struct uio {
- #define OSIFILE_INODE(a) FILE_INODE((a)->filp)
- 
- #if defined(AFS_LINUX_64BIT_KERNEL) && !defined(AFS_ALPHA_LINUX20_ENV) && !defined(AFS_IA64_LINUX20_ENV)
--#define NEED_IOCTL32
-+# define NEED_IOCTL32
- #endif
- 
- #include <linux/version.h>
-@@ -256,8 +256,8 @@ struct uio {
- extern struct mutex afs_global_lock;
- #else
- extern struct semaphore afs_global_lock;
--#define mutex_lock(lock) down(lock)
--#define mutex_unlock(lock) up(lock)
-+# define mutex_lock(lock) down(lock)
-+# define mutex_unlock(lock) up(lock)
- #endif
- extern int afs_global_owner;
- 
-@@ -285,63 +285,63 @@ do { \
- #ifdef AFS_AMD64_LINUX20_ENV
- /* RHEL5 beta's kernel doesn't define these. They aren't gonna change, so... */
- 
--#ifndef __NR_ia32_afs_syscall
--#define __NR_ia32_afs_syscall 137
--#endif
--#ifndef __NR_ia32_setgroups
--#define __NR_ia32_setgroups 81
--#endif
--#ifndef __NR_ia32_setgroups32
--#define __NR_ia32_setgroups32 206
--#endif
--#ifndef __NR_ia32_close
--#define __NR_ia32_close 6
--#endif
--#ifndef __NR_ia32_chdir
--#define __NR_ia32_chdir 12
--#endif
--#ifndef __NR_ia32_break
--#define __NR_ia32_break 17
--#endif
--#ifndef __NR_ia32_stty
--#define __NR_ia32_stty 31
--#endif
--#ifndef __NR_ia32_gtty
--#define __NR_ia32_gtty 32
--#endif
--#ifndef __NR_ia32_ftime
--#define __NR_ia32_ftime 35
--#endif
--#ifndef __NR_ia32_prof
--#define __NR_ia32_prof 44
--#endif
--#ifndef __NR_ia32_lock
--#define __NR_ia32_lock 53
--#endif
--#ifndef __NR_ia32_mpx
--#define __NR_ia32_mpx 56
--#endif
--#ifndef __NR_ia32_exit
--#define __NR_ia32_exit 1
--#endif
--#ifndef __NR_ia32_mount
--#define __NR_ia32_mount 21
--#endif
--#ifndef __NR_ia32_read
--#define __NR_ia32_read 3
--#endif
--#ifndef __NR_ia32_write
--#define __NR_ia32_write 4
--#endif
--#ifndef __NR_ia32_open
--#define __NR_ia32_open 5
--#endif
--#ifndef __NR_ia32_close
--#define __NR_ia32_close 6
--#endif
--#ifndef __NR_ia32_unlink
--#define __NR_ia32_unlink 10
--#endif
-+# ifndef __NR_ia32_afs_syscall
-+#  define __NR_ia32_afs_syscall 137
-+# endif
-+# ifndef __NR_ia32_setgroups
-+#  define __NR_ia32_setgroups 81
-+# endif
-+# ifndef __NR_ia32_setgroups32
-+#  define __NR_ia32_setgroups32 206
-+# endif
-+# ifndef __NR_ia32_close
-+#  define __NR_ia32_close 6
-+# endif
-+# ifndef __NR_ia32_chdir
-+#  define __NR_ia32_chdir 12
-+# endif
-+# ifndef __NR_ia32_break
-+#  define __NR_ia32_break 17
-+# endif
-+# ifndef __NR_ia32_stty
-+#  define __NR_ia32_stty 31
-+# endif
-+# ifndef __NR_ia32_gtty
-+#  define __NR_ia32_gtty 32
-+# endif
-+# ifndef __NR_ia32_ftime
-+#  define __NR_ia32_ftime 35
-+# endif
-+# ifndef __NR_ia32_prof
-+#  define __NR_ia32_prof 44
-+# endif
-+# ifndef __NR_ia32_lock
-+#  define __NR_ia32_lock 53
-+# endif
-+# ifndef __NR_ia32_mpx
-+#  define __NR_ia32_mpx 56
-+# endif
-+# ifndef __NR_ia32_exit
-+#  define __NR_ia32_exit 1
-+# endif
-+# ifndef __NR_ia32_mount
-+#  define __NR_ia32_mount 21
-+# endif
-+# ifndef __NR_ia32_read
-+#  define __NR_ia32_read 3
-+# endif
-+# ifndef __NR_ia32_write
-+#  define __NR_ia32_write 4
-+# endif
-+# ifndef __NR_ia32_open
-+#  define __NR_ia32_open 5
-+# endif
-+# ifndef __NR_ia32_close
-+#  define __NR_ia32_close 6
-+# endif
-+# ifndef __NR_ia32_unlink
-+#  define __NR_ia32_unlink 10
-+# endif
- #endif
- 
- #define osi_procname(procname, size) strncpy(procname, current->comm, size)
--- 
-1.7.9.6 (Apple Git-31.1)
-
-From 314fcfa35917de0f688374137f0ffa040ea3660d Mon Sep 17 00:00:00 2001
-From: Marc Dionne <marc.c.dionne@gmail.com>
-Date: Wed, 9 Jan 2013 19:26:54 -0500
-Subject: [PATCH] Linux 3.8: session_keyring changes
-
-The session_keyring is now attached directly to the cred structure
-and the thread_group_cred structure (cred->tgcred) no longer exists.
-
-Adapt code that makes use of tgcred, and use the standard rcu based
-mechanism to update session_keyring.
-
-Reviewed-on: http://gerrit.openafs.org/8905
-Reviewed-by: Andrew Deason <adeason@sinenomine.net>
-Tested-by: BuildBot <buildbot@rampaginggeek.com>
-Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
-(cherry picked from commit c6d27e322a8d3b352554650473a048235a9c763a)
-
-Change-Id: If0998ee777ab0d196e19162499eb3ee60c5ff85d
-Reviewed-on: http://gerrit.openafs.org/8941
-Reviewed-by: Ken Dreyer <ktdreyer@ktdreyer.com>
-Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
-Tested-by: BuildBot <buildbot@rampaginggeek.com>
-Reviewed-by: Andrew Deason <adeason@sinenomine.net>
-Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
-Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
----
- acinclude.m4                |    1 +
- src/afs/LINUX/osi_compat.h  |   34 ++++++++++++++++++++++++++++++++--
- src/afs/LINUX/osi_groups.c  |    9 ++-------
- src/afs/LINUX/osi_machdep.h |    9 +++++++--
- 4 files changed, 42 insertions(+), 11 deletions(-)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index 8c57779..0a05caa 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -812,6 +812,7 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
- 				       [write_begin], [fs.h])
- 		 AC_CHECK_LINUX_STRUCT([backing_dev_info], [name],
- 				       [backing-dev.h])
-+		 AC_CHECK_LINUX_STRUCT([cred], [session_keyring], [cred.h])
- 		 AC_CHECK_LINUX_STRUCT([ctl_table], [ctl_name], [sysctl.h])
- 		 AC_CHECK_LINUX_STRUCT([dentry_operations], [d_automount], [dcache.h])
- 		 AC_CHECK_LINUX_STRUCT([inode], [i_alloc_sem], [fs.h])
-diff --git a/src/afs/LINUX/osi_compat.h b/src/afs/LINUX/osi_compat.h
-index 2dda136..a777542 100644
---- a/src/afs/LINUX/osi_compat.h
-+++ b/src/afs/LINUX/osi_compat.h
-@@ -186,14 +186,24 @@ afs_linux_key_alloc(struct key_type *type, const char *desc, uid_t uid,
- }
- 
- # if defined(STRUCT_TASK_STRUCT_HAS_CRED)
-+static inline struct key *
-+afs_session_keyring(afs_ucred_t *cred)
-+{
-+#  if defined(STRUCT_CRED_HAS_SESSION_KEYRING)
-+    return cred->session_keyring;
-+#  else
-+    return cred->tgcred->session_keyring;
-+#  endif
-+}
-+
- static inline struct key*
- afs_linux_search_keyring(afs_ucred_t *cred, struct key_type *type)
- {
-     key_ref_t key_ref;
- 
--    if (cred->tgcred->session_keyring) {
-+    if (afs_session_keyring(cred)) {
- 	key_ref = keyring_search(
--		      make_key_ref(cred->tgcred->session_keyring, 1),
-+		      make_key_ref(afs_session_keyring(cred), 1),
- 		      type, "_pag");
- 	if (IS_ERR(key_ref))
- 	    return ERR_CAST(key_ref);
-@@ -507,4 +517,24 @@ afs_set_name(afs_name_t aname, char *string) {
- }
- #endif
- 
-+static_inline struct key *
-+afs_set_session_keyring(struct key *keyring)
-+{
-+    struct key *old;
-+#if defined(STRUCT_CRED_HAS_SESSION_KEYRING)
-+    struct cred *new_creds;
-+    old = current_session_keyring();
-+    new_creds = prepare_creds();
-+    rcu_assign_pointer(new_creds->session_keyring, keyring);
-+    commit_creds(new_creds);
-+#else
-+    spin_lock_irq(&current->sighand->siglock);
-+    old = task_session_keyring(current);
-+    smp_wmb();
-+    task_session_keyring(current) = keyring;
-+    spin_unlock_irq(&current->sighand->siglock);
-+#endif
-+    return old;
-+}
-+
- #endif /* AFS_LINUX_OSI_COMPAT_H */
-diff --git a/src/afs/LINUX/osi_groups.c b/src/afs/LINUX/osi_groups.c
-index c2a0308..e351344 100644
---- a/src/afs/LINUX/osi_groups.c
-+++ b/src/afs/LINUX/osi_groups.c
-@@ -214,14 +214,9 @@ install_session_keyring(struct key *keyring)
-     }
- 
-     /* install the keyring */
--    spin_lock_irq(&current->sighand->siglock);
--    old = task_session_keyring(current);
--    smp_wmb();
--    task_session_keyring(current) = keyring;
--    spin_unlock_irq(&current->sighand->siglock);
--
-+    old = afs_set_session_keyring(keyring);
-     if (old)
--	    key_put(old);
-+	key_put(old);
- 
- out:
-     return code;
-diff --git a/src/afs/LINUX/osi_machdep.h b/src/afs/LINUX/osi_machdep.h
-index 9260733..0202d0d 100644
---- a/src/afs/LINUX/osi_machdep.h
-+++ b/src/afs/LINUX/osi_machdep.h
-@@ -179,8 +179,13 @@ afs_set_cr_group_info(cred_t *cred, struct group_info *group_info) {
- # define current_group_info() (current->cred->group_info)
- # define task_gid(task) (task->cred->gid)
- # define task_user(task) (task->cred->user)
--# define task_session_keyring(task) (task->cred->tgcred->session_keyring)
--# define current_session_keyring() (current->cred->tgcred->session_keyring)
-+# if defined(STRUCT_CRED_HAS_SESSION_KEYRING)
-+#  define task_session_keyring(task) (task->cred->session_keyring)
-+#  define current_session_keyring() (current->cred->session_keyring)
-+# else
-+#  define task_session_keyring(task) (task->cred->tgcred->session_keyring)
-+#  define current_session_keyring() (current->cred->tgcred->session_keyring)
-+# endif
- 
- #else
- 
--- 
-1.7.9.6 (Apple Git-31.1)
-
-From bf9bcd09e6a54eb40e47c7a6cdc060be43be9495 Mon Sep 17 00:00:00 2001
-From: Marc Dionne <marc.c.dionne@gmail.com>
-Date: Wed, 9 Jan 2013 21:22:27 -0500
-Subject: [PATCH] Linux 3.8: vmtruncate removal
-
-vmtruncate had been deprecated for a while and has now been
-removed.  Do things the new way based on truncate_setsize.
-
-Reviewed-on: http://gerrit.openafs.org/8906
-Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
-Tested-by: BuildBot <buildbot@rampaginggeek.com>
-Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
-(cherry picked from commit d0479bbaf43900d6733c3f7517926ee9813c9610)
-
-Change-Id: Iafc64e19544dec9fcaefad5ad274eac4133f4083
-Reviewed-on: http://gerrit.openafs.org/8942
-Reviewed-by: Ken Dreyer <ktdreyer@ktdreyer.com>
-Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
-Tested-by: BuildBot <buildbot@rampaginggeek.com>
-Reviewed-by: Andrew Deason <adeason@sinenomine.net>
-Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
-Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
----
- acinclude.m4               |    1 +
- src/afs/LINUX/osi_compat.h |   14 ++++++++++++++
- src/afs/LINUX/osi_vm.c     |    5 ++---
- 3 files changed, 17 insertions(+), 3 deletions(-)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index 0a05caa..4223bb1 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -824,6 +824,7 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
- 		 AC_CHECK_LINUX_STRUCT([file_operations], [sendfile], [fs.h])
- 		 AC_CHECK_LINUX_STRUCT([file_system_type], [mount], [fs.h])
- 		 AC_CHECK_LINUX_STRUCT([filename], [name], [fs.h])
-+		 AC_CHECK_LINUX_STRUCT([inode_operations], [truncate], [fs.h])
- 		 AC_CHECK_LINUX_STRUCT([key_type], [preparse], [key-type.h])
- 		 AC_CHECK_LINUX_STRUCT([nameidata], [path], [namei.h])
- 		 AC_CHECK_LINUX_STRUCT([proc_dir_entry], [owner], [proc_fs.h])
-diff --git a/src/afs/LINUX/osi_compat.h b/src/afs/LINUX/osi_compat.h
-index a777542..e8bf003 100644
---- a/src/afs/LINUX/osi_compat.h
-+++ b/src/afs/LINUX/osi_compat.h
-@@ -537,4 +537,18 @@ afs_set_session_keyring(struct key *keyring)
-     return old;
- }
- 
-+static inline int
-+afs_truncate(struct inode *inode, int len)
-+{
-+    int code;
-+#if defined(STRUCT_INODE_OPERATIONS_HAS_TRUNCATE)
-+    code = vmtruncate(inode, len);
-+#else
-+    code = inode_newsize_ok(inode, len);
-+    if (!code)
-+        truncate_setsize(inode, len);
-+#endif
-+    return code;
-+}
-+
- #endif /* AFS_LINUX_OSI_COMPAT_H */
-diff --git a/src/afs/LINUX/osi_vm.c b/src/afs/LINUX/osi_vm.c
-index 2cd34f9..8bc792e 100644
---- a/src/afs/LINUX/osi_vm.c
-+++ b/src/afs/LINUX/osi_vm.c
-@@ -51,8 +51,7 @@ osi_VM_FlushVCache(struct vcache *avc, int *slept)
-     if (avc->opens != 0)
- 	return EBUSY;
- 
--    return vmtruncate(ip, 0);
--    return 0;
-+    return afs_truncate(ip, 0);
- }
- 
- /* Try to invalidate pages, for "fs flush" or "fs flushv"; or
-@@ -132,5 +131,5 @@ osi_VM_FlushPages(struct vcache *avc, afs_ucred_t *credp)
- void
- osi_VM_Truncate(struct vcache *avc, int alen, afs_ucred_t *acred)
- {
--    vmtruncate(AFSTOV(avc), alen);
-+    afs_truncate(AFSTOV(avc), alen);
- }
--- 
-1.7.9.6 (Apple Git-31.1)
-
-From b0a10607f90c4097206bc38cb9bd16e842dbda10 Mon Sep 17 00:00:00 2001
-From: Marc Dionne <marc.c.dionne@gmail.com>
-Date: Fri, 18 Jan 2013 22:40:03 -0500
-Subject: [PATCH] Linux: setpag() may replace credentials
-
-For recent Linux. setpag() may replace the current process' cred
-structure with a new one.  This is not a problem for most callers,
-but in the case of processing a SetTokens2 pioctl with the setpag
-option, the new credentials should be used to determine the target
-for the token.
-
-Reviewed-on: http://gerrit.openafs.org/8924
-Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
-Tested-by: BuildBot <buildbot@rampaginggeek.com>
-Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
-(cherry picked from commit b61eac783e8c092cd4ba9f53a2b5ca7d43e08b1b)
-
-Change-Id: I66b5f171318964ff40fe78be24e75519183c3a82
-Reviewed-on: http://gerrit.openafs.org/8948
-Tested-by: BuildBot <buildbot@rampaginggeek.com>
-Reviewed-by: Andrew Deason <adeason@sinenomine.net>
-Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
-Reviewed-by: Ken Dreyer <ktdreyer@ktdreyer.com>
-Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
----
- src/afs/afs_pioctl.c |    8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/src/afs/afs_pioctl.c b/src/afs/afs_pioctl.c
-index 3c01be5..98919a3 100644
---- a/src/afs/afs_pioctl.c
-+++ b/src/afs/afs_pioctl.c
-@@ -1859,6 +1859,9 @@ DECL_PIOCTL(PSetTokens)
-     afs_PutCell(tcell, READ_LOCK);
-     if (set_parent_pag) {
- 	afs_uint32 pag;
-+#if defined(AFS_LINUX26_ENV)
-+	afs_ucred_t *old_cred = *acred;
-+#endif
- #if defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
- 	char procname[256];
- 	osi_procname(procname, 256);
-@@ -1868,6 +1871,11 @@ DECL_PIOCTL(PSetTokens)
- #else
- 	if (!setpag(acred, -1, &pag, 1)) {
- #endif
-+#if defined(AFS_LINUX26_ENV)
-+	    /* setpag() may have changed our credentials */
-+	    *acred = crref();
-+	    crfree(old_cred);
-+#endif
- 	    afs_InitReq(&treq, *acred);
- 	    areq = &treq;
- 	}
--- 
-1.7.9.6 (Apple Git-31.1)
-
Index: branches/fc19-dev/server/fedora/config/etc/aliases
===================================================================
--- branches/fc19-dev/server/fedora/config/etc/aliases	(revision 2431)
+++ branches/fc19-dev/server/fedora/config/etc/aliases	(revision 2434)
@@ -89,5 +89,5 @@
 
 # Person who should get root's mail
-root:		andersk@mit.edu, quentin@mit.edu, geofft+root@mit.edu, mitchb@mit.edu, ezyang@mit.edu, xavid@mit.edu, adehnert-sipb@mit.edu, achernya@mit.edu, glasgall@mit.edu
+root:		andersk@mit.edu, quentin@mit.edu, geofft+root@mit.edu, mitchb@mit.edu, ezyang@mit.edu, xavid@mit.edu, adehnert-sipb@mit.edu, achernya@mit.edu, glasgall@mit.edu, tboning@mit.edu
 
 scripts:	root
@@ -105,4 +105,6 @@
 # ro21531: spam to rosmosis.net: added 2011-06-25, see mail to -root 2011-06-03
 ro21531:	/dev/null
+# buechley: not responsive to mail sent by -root on 2013-05-14, added 2013-07-04
+buechley:   	 /dev/null
 
 # Temporary to clear the queue
Index: branches/fc19-dev/server/fedora/config/etc/httpd/vhosts.d/feed.conf
===================================================================
--- branches/fc19-dev/server/fedora/config/etc/httpd/vhosts.d/feed.conf	(revision 2434)
+++ branches/fc19-dev/server/fedora/config/etc/httpd/vhosts.d/feed.conf	(revision 2434)
@@ -0,0 +1,36 @@
+# do not trailing-slash DocumentRoot
+
+<VirtualHost *:80>
+	ServerName feed.mit.edu
+	ServerAlias feed
+	DocumentRoot /afs/sipb.mit.edu/project/feed/web_scripts
+	Alias /~feed /afs/sipb.mit.edu/project/feed/web_scripts
+	SuExecUserGroup feed feed
+	Include conf.d/vhosts-common.conf
+</VirtualHost>
+
+<IfModule ssl_module>
+	<VirtualHost *:443>
+		ServerName feed.mit.edu
+		ServerAlias feed
+		DocumentRoot /afs/sipb.mit.edu/project/feed/web_scripts
+		Alias /~feed /afs/sipb.mit.edu/project/feed/web_scripts
+		SuExecUserGroup feed feed
+		Include conf.d/vhosts-common-ssl.conf
+		SSLCertificateFile /etc/pki/tls/certs/feed.pem
+		SSLCertificateChainFile /etc/pki/tls/certs/feed.pem
+		SSLCertificateKeyFile /etc/pki/tls/private/scripts.key
+	</VirtualHost>
+	<VirtualHost *:444>
+		ServerName feed.mit.edu
+		ServerAlias feed
+		DocumentRoot /afs/sipb.mit.edu/project/feed/web_scripts
+		Alias /~feed /afs/sipb.mit.edu/project/feed/web_scripts
+		SuExecUserGroup feed feed
+		Include conf.d/vhosts-common-ssl.conf
+		Include conf.d/vhosts-common-ssl-cert.conf
+		SSLCertificateFile /etc/pki/tls/certs/feed.pem
+		SSLCertificateChainFile /etc/pki/tls/certs/feed.pem
+		SSLCertificateKeyFile /etc/pki/tls/private/scripts.key
+	</VirtualHost>
+</IfModule>
Index: branches/fc19-dev/server/fedora/config/etc/httpd/vhosts.d/ties.conf
===================================================================
--- branches/fc19-dev/server/fedora/config/etc/httpd/vhosts.d/ties.conf	(revision 2431)
+++ branches/fc19-dev/server/fedora/config/etc/httpd/vhosts.d/ties.conf	(revision 2434)
@@ -19,4 +19,5 @@
 		Include conf.d/vhosts-common-ssl.conf
 		SSLCertificateFile /etc/pki/tls/certs/ties.pem
+		SSLCertificateChainFile /etc/pki/tls/certs/ties.pem
 		SSLCertificateKeyFile /etc/pki/tls/private/scripts.key
 	</VirtualHost>
@@ -30,4 +31,5 @@
 		Include conf.d/vhosts-common-ssl-cert.conf
 		SSLCertificateFile /etc/pki/tls/certs/ties.pem
+		SSLCertificateChainFile /etc/pki/tls/certs/ties.pem
 		SSLCertificateKeyFile /etc/pki/tls/private/scripts.key
 	</VirtualHost>
Index: branches/fc19-dev/server/fedora/config/etc/pki/tls/certs/feed.pem
===================================================================
--- branches/fc19-dev/server/fedora/config/etc/pki/tls/certs/feed.pem	(revision 2434)
+++ branches/fc19-dev/server/fedora/config/etc/pki/tls/certs/feed.pem	(revision 2434)
@@ -0,0 +1,65 @@
+-----BEGIN CERTIFICATE-----
+MIIGYTCCBUmgAwIBAgIQerZzAzqO3bEveZoQ9czSHDANBgkqhkiG9w0BAQUFADBR
+MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSW50ZXJuZXQyMREwDwYDVQQLEwhJbkNv
+bW1vbjEbMBkGA1UEAxMSSW5Db21tb24gU2VydmVyIENBMB4XDTEzMDUyMzAwMDAw
+MFoXDTE2MDUyMjIzNTk1OVowgdAxCzAJBgNVBAYTAlVTMQ4wDAYDVQQREwUwMjEz
+OTELMAkGA1UECBMCTWExEjAQBgNVBAcTCUNhbWJyaWRnZTEdMBsGA1UECRMUNzcg
+TWFzc2FjaHVzZXR0cyBBdmUxLjAsBgNVBAoTJU1hc3NhY2h1c2V0dHMgSW5zdGl0
+dXRlIG9mIFRlY2hub2xvZ3kxKjAoBgNVBAsUIUluZm9ybWF0aW9uIFNlcnZpY2Vz
+ICYgVGVjaG5vbG9neTEVMBMGA1UEAxMMZmVlZC5taXQuZWR1MIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAv6Pye5jMFqdX5pKFNFbx42KDnmpPNZ3wz4mH
+c+OT97cBVzhu6fxZTSTrpxdHyixRDkXIt2jJDjIm4JHTBlyMfA5smQyyRgUPTfGw
+x141BmL+KtYPGyy1AiRMwwZx7JTKHaqvfrktwFVLzLxRPXZoW9PtNdADuhts86DY
+09xrRLBeAVHTAsxK2lIS3jUxaRZaSIsPzq1N5NWLETZ/hxz9hNpDLocvQXCsrd9U
+wO32IVH6xQbwG+uhsL9NHEI0itVv9yVmc49gxNeNM5H0RjqXCVkB/8NklEBIMGjw
+bgMmdMKhs9fLlPxuU4oqnv2xT8R0ViVjH6q9lSV4nEVGGwwhceuElNCy8dpS9tF/
+Yx0II1JfwvlNrKRE5ZpUcPzJ/NTUtx11lQDjvz5M80PDlscJKilFEtIx1nlMiudU
+JyLGgK6HI1bxjUmbyPrtM1tfVnbID36FFGnESDEHOaU0gfJrFVAi+7ssrUuE6lVk
+995WndC20H0eG1FQN0SU5sQV60Ux8bPsD7OpDPgcR8dRAAXv7rA9n34Hpzjog0w9
+2zS2JAyQV8D50GQUipNHm0H1oxQdnhhd1dhmr/XzyC+8pwKn79zwDsdHjS7WqGJC
+k1t89TX4MRB7ONRAJGiBEyfL+3YO0ZkU2NXr92lkj6+PgrskKfnUKR3O5hS6TIsJ
+/0bOi20CAwEAAaOCAbMwggGvMB8GA1UdIwQYMBaAFEhPWvovSppe4FDza3tVpd71
+vjRdMB0GA1UdDgQWBBTLEbcBX4ZVT0VeqydpvuE8iXpVYjAOBgNVHQ8BAf8EBAMC
+BaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw
+ZwYDVR0gBGAwXjBSBgwrBgEEAa4jAQQDAQEwQjBABggrBgEFBQcCARY0aHR0cHM6
+Ly93d3cuaW5jb21tb24ub3JnL2NlcnQvcmVwb3NpdG9yeS9jcHNfc3NsLnBkZjAI
+BgZngQwBAgIwPQYDVR0fBDYwNDAyoDCgLoYsaHR0cDovL2NybC5pbmNvbW1vbi5v
+cmcvSW5Db21tb25TZXJ2ZXJDQS5jcmwwbwYIKwYBBQUHAQEEYzBhMDkGCCsGAQUF
+BzAChi1odHRwOi8vY2VydC5pbmNvbW1vbi5vcmcvSW5Db21tb25TZXJ2ZXJDQS5j
+cnQwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmluY29tbW9uLm9yZzAXBgNVHREE
+EDAOggxmZWVkLm1pdC5lZHUwDQYJKoZIhvcNAQEFBQADggEBACrCCJCDctLYlLtq
+6Ot7m7Pi+uudrCpsU4iyIV4knW2uncCdN1WXX7Xa7ZDM7oGr5dNqpdNeNXP9FV2p
+Z2ycFjmfE5VUX0PADxYRXvlLWZFtviYf1buUHE4mj7zHTBY+uEAfee5UGhuM49+N
+PGvQN04JFr4izXk2ZAAf2gltUSUIeoSm3+cZdEnIDk6Rd74UaEu2AmxCCDCJuhLo
+K8fUTgAbOuSNQwZuADqx5Cw4OAfnL2vHmzoBmKMeP2Ly7x3qYfFDlR60UxFzyuON
+m0dFO8IB92+BbUiZUMwSUm3ZHMGR+njVmQOk4b4RjbIIzsyAmmbCcuYJ5wAgIygS
+tsdUWXE=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEwzCCA6ugAwIBAgIQf3HB06ImsNKxE/PmgWdkPjANBgkqhkiG9w0BAQUFADBv
+MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
+ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
+eHRlcm5hbCBDQSBSb290MB4XDTEwMTIwNzAwMDAwMFoXDTIwMDUzMDEwNDgzOFow
+UTELMAkGA1UEBhMCVVMxEjAQBgNVBAoTCUludGVybmV0MjERMA8GA1UECxMISW5D
+b21tb24xGzAZBgNVBAMTEkluQ29tbW9uIFNlcnZlciBDQTCCASIwDQYJKoZIhvcN
+AQEBBQADggEPADCCAQoCggEBAJd8x8j+s+kgaqOkT46ONFYGs3psqhCbSGErNpBp
+4zQKR6e7e96qavvrgpWPyh1/r3WmqEzaIGdhGg2GwcrBh6+sTuTeYhsvnbGYr8YB
++xdw26wUWexvPzN/ppgL5OI4r/V/hW0OdASd9ieGx5uP53EqCPQDAkBjJH1AV49U
+4FR+thNIYfHezg69tvpNmLLZDY15puCqzQyRmqXfq3O7yhR4XEcpocrFup/H2mD3
+/+d/8tnaoS0PSRan0wCSz4pH2U341ZVm03T5gGMAT0yEFh+z9SQfoU7e6JXWsgsJ
+iyxrx1wvjGPJmctSsWJ7cwFif2Ns2Gig7mqojR8p89AYrK0CAwEAAaOCAXcwggFz
+MB8GA1UdIwQYMBaAFK29mHo0tCb3+sQmVO8DveAky1QaMB0GA1UdDgQWBBRIT1r6
+L0qaXuBQ82t7VaXe9b40XTAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB
+/wIBADARBgNVHSAECjAIMAYGBFUdIAAwRAYDVR0fBD0wOzA5oDegNYYzaHR0cDov
+L2NybC51c2VydHJ1c3QuY29tL0FkZFRydXN0RXh0ZXJuYWxDQVJvb3QuY3JsMIGz
+BggrBgEFBQcBAQSBpjCBozA/BggrBgEFBQcwAoYzaHR0cDovL2NydC51c2VydHJ1
+c3QuY29tL0FkZFRydXN0RXh0ZXJuYWxDQVJvb3QucDdjMDkGCCsGAQUFBzAChi1o
+dHRwOi8vY3J0LnVzZXJ0cnVzdC5jb20vQWRkVHJ1c3RVVE5TR0NDQS5jcnQwJQYI
+KwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEF
+BQADggEBAJNmIYB0RYVLwqvOMrAp/t3f1iRbvwNqb1A+DhuzDYijW+7EpBI7Vu8G
+f89/IZVWO0Ex/uGqk9KV85UNPEerylwmrT7x+Yw0bhG+9GfjAkn5pnx7ZCXdF0by
+UOPjCiE6SSTNxoRlaGdosEUtR5nNnKuGKRFy3NacNkN089SXnlag/l9AWNLV1358
+xY4asgRckmYOha0uBs7Io9jrFCeR3s8XMIFTtmYSrTfk9e+WXCAONumsYn0ZgYr1
+kGGmSavOPN/mymTugmU5RZUWukEGAJi6DFZh5MbGhgHPZqkiKQLWPc/EKo2Z3vsJ
+FJ4O0dXG14HdrSSrrAcF4h1ow3BmX9M=
+-----END CERTIFICATE-----
Index: branches/fc19-dev/server/fedora/config/etc/pki/tls/certs/ties.pem
===================================================================
--- branches/fc19-dev/server/fedora/config/etc/pki/tls/certs/ties.pem	(revision 2431)
+++ branches/fc19-dev/server/fedora/config/etc/pki/tls/certs/ties.pem	(revision 2434)
@@ -1,110 +1,65 @@
-From mitcert@MIT.EDU Mon May 14 09:29:28 2012
-Date: Mon, 14 May 2012 09:29:26 -0400
-From: mitcert@MIT.EDU
-To: achernya@mit.edu
-Subject: [help.mit.edu #1987094] certificate renewal for scripts-vhost ties.mit.edu 
-
-Certificate:
-    Data:
-        Version: 3 (0x2)
-        Serial Number:
-            ad:4d:c7:9a:02:c8:7e:1c:b7:4d:e1:c4:bc:c8:69:fe
-        Signature Algorithm: sha1WithRSAEncryption
-        Issuer: C=US, ST=Massachusetts, O=Massachusetts Institute of Technology, OU=MIT Certification Authority
-        Validity
-            Not Before: May 12 16:00:00 2012 GMT
-            Not After : May 14 16:00:00 2013 GMT
-        Subject: C=US, ST=Massachusetts, L=Cambridge, O=Massachusetts Institute of Technology, OU=scripts.mit.edu web hosting service, CN=ties.mit.edu/emailAddress=scripts@mit.edu
-        Subject Public Key Info:
-            Public Key Algorithm: rsaEncryption
-            RSA Public Key: (4096 bit)
-                Modulus (4096 bit):
-                    00:bf:a3:f2:7b:98:cc:16:a7:57:e6:92:85:34:56:
-                    f1:e3:62:83:9e:6a:4f:35:9d:f0:cf:89:87:73:e3:
-                    93:f7:b7:01:57:38:6e:e9:fc:59:4d:24:eb:a7:17:
-                    47:ca:2c:51:0e:45:c8:b7:68:c9:0e:32:26:e0:91:
-                    d3:06:5c:8c:7c:0e:6c:99:0c:b2:46:05:0f:4d:f1:
-                    b0:c7:5e:35:06:62:fe:2a:d6:0f:1b:2c:b5:02:24:
-                    4c:c3:06:71:ec:94:ca:1d:aa:af:7e:b9:2d:c0:55:
-                    4b:cc:bc:51:3d:76:68:5b:d3:ed:35:d0:03:ba:1b:
-                    6c:f3:a0:d8:d3:dc:6b:44:b0:5e:01:51:d3:02:cc:
-                    4a:da:52:12:de:35:31:69:16:5a:48:8b:0f:ce:ad:
-                    4d:e4:d5:8b:11:36:7f:87:1c:fd:84:da:43:2e:87:
-                    2f:41:70:ac:ad:df:54:c0:ed:f6:21:51:fa:c5:06:
-                    f0:1b:eb:a1:b0:bf:4d:1c:42:34:8a:d5:6f:f7:25:
-                    66:73:8f:60:c4:d7:8d:33:91:f4:46:3a:97:09:59:
-                    01:ff:c3:64:94:40:48:30:68:f0:6e:03:26:74:c2:
-                    a1:b3:d7:cb:94:fc:6e:53:8a:2a:9e:fd:b1:4f:c4:
-                    74:56:25:63:1f:aa:bd:95:25:78:9c:45:46:1b:0c:
-                    21:71:eb:84:94:d0:b2:f1:da:52:f6:d1:7f:63:1d:
-                    08:23:52:5f:c2:f9:4d:ac:a4:44:e5:9a:54:70:fc:
-                    c9:fc:d4:d4:b7:1d:75:95:00:e3:bf:3e:4c:f3:43:
-                    c3:96:c7:09:2a:29:45:12:d2:31:d6:79:4c:8a:e7:
-                    54:27:22:c6:80:ae:87:23:56:f1:8d:49:9b:c8:fa:
-                    ed:33:5b:5f:56:76:c8:0f:7e:85:14:69:c4:48:31:
-                    07:39:a5:34:81:f2:6b:15:50:22:fb:bb:2c:ad:4b:
-                    84:ea:55:64:f7:de:56:9d:d0:b6:d0:7d:1e:1b:51:
-                    50:37:44:94:e6:c4:15:eb:45:31:f1:b3:ec:0f:b3:
-                    a9:0c:f8:1c:47:c7:51:00:05:ef:ee:b0:3d:9f:7e:
-                    07:a7:38:e8:83:4c:3d:db:34:b6:24:0c:90:57:c0:
-                    f9:d0:64:14:8a:93:47:9b:41:f5:a3:14:1d:9e:18:
-                    5d:d5:d8:66:af:f5:f3:c8:2f:bc:a7:02:a7:ef:dc:
-                    f0:0e:c7:47:8d:2e:d6:a8:62:42:93:5b:7c:f5:35:
-                    f8:31:10:7b:38:d4:40:24:68:81:13:27:cb:fb:76:
-                    0e:d1:99:14:d8:d5:eb:f7:69:64:8f:af:8f:82:bb:
-                    24:29:f9:d4:29:1d:ce:e6:14:ba:4c:8b:09:ff:46:
-                    ce:8b:6d
-                Exponent: 65537 (0x10001)
-        X509v3 extensions:
-            X509v3 Basic Constraints: 
-                CA:FALSE
-            Netscape Cert Type: 
-                SSL Client, SSL Server, S/MIME
-            X509v3 Extended Key Usage: 
-                TLS Web Server Authentication, E-mail Protection, TLS Web Client Authentication
-            X509v3 Key Usage: 
-                Digital Signature, Non Repudiation, Key Encipherment
-            X509v3 Subject Key Identifier: 
-                CB:11:B7:01:5F:86:55:4F:45:5E:AB:27:69:BE:E1:3C:89:7A:55:62
-            X509v3 CRL Distribution Points: 
-                URI:http://ca.mit.edu/ca/mitserver.crl
-
-    Signature Algorithm: sha1WithRSAEncryption
-        23:ec:34:e2:79:a4:07:a4:12:8f:ce:72:42:7f:c7:30:4a:93:
-        7f:de:52:9f:76:0c:6b:41:fd:d5:09:45:33:84:9d:b4:6c:ec:
-        de:53:61:4d:78:06:34:3d:d2:2d:4b:16:0a:86:77:13:47:78:
-        4b:7e:4b:f6:fc:64:1d:13:5e:7a:dc:06:47:3a:34:74:7c:ee:
-        39:c0:5a:b2:9b:f3:b0:1e:5a:93:3e:a3:61:67:52:b2:db:13:
-        a2:ed:8c:d1:40:fe:1d:8e:53:e2:d5:e3:d4:f2:b2:d2:3f:8f:
-        f4:5f:a1:44:19:b8:6b:2d:86:5a:5c:d7:4f:11:11:3b:ae:dc:
-        93:92
 -----BEGIN CERTIFICATE-----
-MIIFADCCBGmgAwIBAgIRAK1Nx5oCyH4ct03hxLzIaf4wDQYJKoZIhvcNAQEFBQAw
-ezELMAkGA1UEBhMCVVMxFjAUBgNVBAgTDU1hc3NhY2h1c2V0dHMxLjAsBgNVBAoT
-JU1hc3NhY2h1c2V0dHMgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3kxJDAiBgNVBAsT
-G01JVCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMjA1MTIxNjAwMDBaFw0x
-MzA1MTQxNjAwMDBaMIHOMQswCQYDVQQGEwJVUzEWMBQGA1UECBMNTWFzc2FjaHVz
-ZXR0czESMBAGA1UEBxMJQ2FtYnJpZGdlMS4wLAYDVQQKEyVNYXNzYWNodXNldHRz
-IEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5MSwwKgYDVQQLEyNzY3JpcHRzLm1pdC5l
-ZHUgd2ViIGhvc3Rpbmcgc2VydmljZTEVMBMGA1UEAxMMdGllcy5taXQuZWR1MR4w
-HAYJKoZIhvcNAQkBFg9zY3JpcHRzQG1pdC5lZHUwggIiMA0GCSqGSIb3DQEBAQUA
-A4ICDwAwggIKAoICAQC/o/J7mMwWp1fmkoU0VvHjYoOeak81nfDPiYdz45P3twFX
-OG7p/FlNJOunF0fKLFEORci3aMkOMibgkdMGXIx8DmyZDLJGBQ9N8bDHXjUGYv4q
-1g8bLLUCJEzDBnHslModqq9+uS3AVUvMvFE9dmhb0+010AO6G2zzoNjT3GtEsF4B
-UdMCzEraUhLeNTFpFlpIiw/OrU3k1YsRNn+HHP2E2kMuhy9BcKyt31TA7fYhUfrF
-BvAb66Gwv00cQjSK1W/3JWZzj2DE140zkfRGOpcJWQH/w2SUQEgwaPBuAyZ0wqGz
-18uU/G5Tiiqe/bFPxHRWJWMfqr2VJXicRUYbDCFx64SU0LLx2lL20X9jHQgjUl/C
-+U2spETlmlRw/Mn81NS3HXWVAOO/PkzzQ8OWxwkqKUUS0jHWeUyK51QnIsaArocj
-VvGNSZvI+u0zW19WdsgPfoUUacRIMQc5pTSB8msVUCL7uyytS4TqVWT33lad0LbQ
-fR4bUVA3RJTmxBXrRTHxs+wPs6kM+BxHx1EABe/usD2ffgenOOiDTD3bNLYkDJBX
-wPnQZBSKk0ebQfWjFB2eGF3V2Gav9fPIL7ynAqfv3PAOx0eNLtaoYkKTW3z1Nfgx
-EHs41EAkaIETJ8v7dg7RmRTY1ev3aWSPr4+CuyQp+dQpHc7mFLpMiwn/Rs6LbQID
-AQABo4GrMIGoMAkGA1UdEwQCMAAwEQYJYIZIAYb4QgEBBAQDAgXgMCcGA1UdJQQg
-MB4GCCsGAQUFBwMBBggrBgEFBQcDBAYIKwYBBQUHAwIwCwYDVR0PBAQDAgXgMB0G
-A1UdDgQWBBTLEbcBX4ZVT0VeqydpvuE8iXpVYjAzBgNVHR8ELDAqMCigJqAkhiJo
-dHRwOi8vY2EubWl0LmVkdS9jYS9taXRzZXJ2ZXIuY3JsMA0GCSqGSIb3DQEBBQUA
-A4GBACPsNOJ5pAekEo/OckJ/xzBKk3/eUp92DGtB/dUJRTOEnbRs7N5TYU14BjQ9
-0i1LFgqGdxNHeEt+S/b8ZB0TXnrcBkc6NHR87jnAWrKb87AeWpM+o2FnUrLbE6Lt
-jNFA/h2OU+LV49TystI/j/RfoUQZuGsthlpc108RETuu3JOS
+MIIGYTCCBUmgAwIBAgIQI5gKWQk3UljigHOh09s9djANBgkqhkiG9w0BAQUFADBR
+MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSW50ZXJuZXQyMREwDwYDVQQLEwhJbkNv
+bW1vbjEbMBkGA1UEAxMSSW5Db21tb24gU2VydmVyIENBMB4XDTEzMDUwMzAwMDAw
+MFoXDTE2MDUwMjIzNTk1OVowgdAxCzAJBgNVBAYTAlVTMQ4wDAYDVQQREwUwMjEz
+OTELMAkGA1UECBMCTWExEjAQBgNVBAcTCUNhbWJyaWRnZTEdMBsGA1UECRMUNzcg
+TWFzc2FjaHVzZXR0cyBBdmUxLjAsBgNVBAoTJU1hc3NhY2h1c2V0dHMgSW5zdGl0
+dXRlIG9mIFRlY2hub2xvZ3kxKjAoBgNVBAsUIUluZm9ybWF0aW9uIFNlcnZpY2Vz
+ICYgVGVjaG5vbG9neTEVMBMGA1UEAxMMdGllcy5taXQuZWR1MIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAv6Pye5jMFqdX5pKFNFbx42KDnmpPNZ3wz4mH
+c+OT97cBVzhu6fxZTSTrpxdHyixRDkXIt2jJDjIm4JHTBlyMfA5smQyyRgUPTfGw
+x141BmL+KtYPGyy1AiRMwwZx7JTKHaqvfrktwFVLzLxRPXZoW9PtNdADuhts86DY
+09xrRLBeAVHTAsxK2lIS3jUxaRZaSIsPzq1N5NWLETZ/hxz9hNpDLocvQXCsrd9U
+wO32IVH6xQbwG+uhsL9NHEI0itVv9yVmc49gxNeNM5H0RjqXCVkB/8NklEBIMGjw
+bgMmdMKhs9fLlPxuU4oqnv2xT8R0ViVjH6q9lSV4nEVGGwwhceuElNCy8dpS9tF/
+Yx0II1JfwvlNrKRE5ZpUcPzJ/NTUtx11lQDjvz5M80PDlscJKilFEtIx1nlMiudU
+JyLGgK6HI1bxjUmbyPrtM1tfVnbID36FFGnESDEHOaU0gfJrFVAi+7ssrUuE6lVk
+995WndC20H0eG1FQN0SU5sQV60Ux8bPsD7OpDPgcR8dRAAXv7rA9n34Hpzjog0w9
+2zS2JAyQV8D50GQUipNHm0H1oxQdnhhd1dhmr/XzyC+8pwKn79zwDsdHjS7WqGJC
+k1t89TX4MRB7ONRAJGiBEyfL+3YO0ZkU2NXr92lkj6+PgrskKfnUKR3O5hS6TIsJ
+/0bOi20CAwEAAaOCAbMwggGvMB8GA1UdIwQYMBaAFEhPWvovSppe4FDza3tVpd71
+vjRdMB0GA1UdDgQWBBTLEbcBX4ZVT0VeqydpvuE8iXpVYjAOBgNVHQ8BAf8EBAMC
+BaAwDAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw
+ZwYDVR0gBGAwXjBSBgwrBgEEAa4jAQQDAQEwQjBABggrBgEFBQcCARY0aHR0cHM6
+Ly93d3cuaW5jb21tb24ub3JnL2NlcnQvcmVwb3NpdG9yeS9jcHNfc3NsLnBkZjAI
+BgZngQwBAgIwPQYDVR0fBDYwNDAyoDCgLoYsaHR0cDovL2NybC5pbmNvbW1vbi5v
+cmcvSW5Db21tb25TZXJ2ZXJDQS5jcmwwbwYIKwYBBQUHAQEEYzBhMDkGCCsGAQUF
+BzAChi1odHRwOi8vY2VydC5pbmNvbW1vbi5vcmcvSW5Db21tb25TZXJ2ZXJDQS5j
+cnQwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmluY29tbW9uLm9yZzAXBgNVHREE
+EDAOggx0aWVzLm1pdC5lZHUwDQYJKoZIhvcNAQEFBQADggEBADRUIF72igqavvwi
+VQ1YLk1pNOM5oLbwATaJ+fCrnVN7ul4IZmEKgp/LXBDxjqreA7Js7W4IgSFRmcCc
+Ho7H1UF6i9GdjiyhTpBq6p97GxkcKCAm2rG7Hmdp2NM+AouypbghH25mvuiQDWpK
+AOoYnjiEhiQOeKGqR1oR+LFTGfclxarasdtUkVWh0c4eYG3QJYYbF3D6xFa1Pwt5
+k65Qul8GV/vZ+/rexQd6olwXN8n6KZNXfSmbzbDZTga/woDeMotbPeLaEv0nTsoD
+G2j/rOF6bo3YrVm7jwMPt/Pcnq48QQn31ERknB66BHjVLM5/UC67qlGcxseuUi3S
+uEge8pQ=
 -----END CERTIFICATE-----
-
+-----BEGIN CERTIFICATE-----
+MIIEwzCCA6ugAwIBAgIQf3HB06ImsNKxE/PmgWdkPjANBgkqhkiG9w0BAQUFADBv
+MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
+ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
+eHRlcm5hbCBDQSBSb290MB4XDTEwMTIwNzAwMDAwMFoXDTIwMDUzMDEwNDgzOFow
+UTELMAkGA1UEBhMCVVMxEjAQBgNVBAoTCUludGVybmV0MjERMA8GA1UECxMISW5D
+b21tb24xGzAZBgNVBAMTEkluQ29tbW9uIFNlcnZlciBDQTCCASIwDQYJKoZIhvcN
+AQEBBQADggEPADCCAQoCggEBAJd8x8j+s+kgaqOkT46ONFYGs3psqhCbSGErNpBp
+4zQKR6e7e96qavvrgpWPyh1/r3WmqEzaIGdhGg2GwcrBh6+sTuTeYhsvnbGYr8YB
++xdw26wUWexvPzN/ppgL5OI4r/V/hW0OdASd9ieGx5uP53EqCPQDAkBjJH1AV49U
+4FR+thNIYfHezg69tvpNmLLZDY15puCqzQyRmqXfq3O7yhR4XEcpocrFup/H2mD3
+/+d/8tnaoS0PSRan0wCSz4pH2U341ZVm03T5gGMAT0yEFh+z9SQfoU7e6JXWsgsJ
+iyxrx1wvjGPJmctSsWJ7cwFif2Ns2Gig7mqojR8p89AYrK0CAwEAAaOCAXcwggFz
+MB8GA1UdIwQYMBaAFK29mHo0tCb3+sQmVO8DveAky1QaMB0GA1UdDgQWBBRIT1r6
+L0qaXuBQ82t7VaXe9b40XTAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB
+/wIBADARBgNVHSAECjAIMAYGBFUdIAAwRAYDVR0fBD0wOzA5oDegNYYzaHR0cDov
+L2NybC51c2VydHJ1c3QuY29tL0FkZFRydXN0RXh0ZXJuYWxDQVJvb3QuY3JsMIGz
+BggrBgEFBQcBAQSBpjCBozA/BggrBgEFBQcwAoYzaHR0cDovL2NydC51c2VydHJ1
+c3QuY29tL0FkZFRydXN0RXh0ZXJuYWxDQVJvb3QucDdjMDkGCCsGAQUFBzAChi1o
+dHRwOi8vY3J0LnVzZXJ0cnVzdC5jb20vQWRkVHJ1c3RVVE5TR0NDQS5jcnQwJQYI
+KwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEF
+BQADggEBAJNmIYB0RYVLwqvOMrAp/t3f1iRbvwNqb1A+DhuzDYijW+7EpBI7Vu8G
+f89/IZVWO0Ex/uGqk9KV85UNPEerylwmrT7x+Yw0bhG+9GfjAkn5pnx7ZCXdF0by
+UOPjCiE6SSTNxoRlaGdosEUtR5nNnKuGKRFy3NacNkN089SXnlag/l9AWNLV1358
+xY4asgRckmYOha0uBs7Io9jrFCeR3s8XMIFTtmYSrTfk9e+WXCAONumsYn0ZgYr1
+kGGmSavOPN/mymTugmU5RZUWukEGAJi6DFZh5MbGhgHPZqkiKQLWPc/EKo2Z3vsJ
+FJ4O0dXG14HdrSSrrAcF4h1ow3BmX9M=
+-----END CERTIFICATE-----
Index: branches/fc19-dev/server/fedora/config/etc/postfix/blocked_users
===================================================================
--- branches/fc19-dev/server/fedora/config/etc/postfix/blocked_users	(revision 2431)
+++ branches/fc19-dev/server/fedora/config/etc/postfix/blocked_users	(revision 2434)
@@ -3,2 +3,3 @@
 bsu
 delian
+buechley
Index: branches/fc19-dev/server/fedora/config/etc/scripts/prune-mailq
===================================================================
--- branches/fc19-dev/server/fedora/config/etc/scripts/prune-mailq	(revision 2434)
+++ branches/fc19-dev/server/fedora/config/etc/scripts/prune-mailq	(revision 2434)
@@ -0,0 +1,89 @@
+#!/bin/sh
+
+set -eu
+shopt -s failglob
+
+usage="Usage:
+    $0 list
+    $0 show-rand
+    $0 email lockers...
+    $0 purge lockers..."
+
+clean_locker() {
+    echo "${1%%@scripts.mit.edu}"
+}
+
+list() {
+    echo "Top twenty users by number of queued messages:"
+    mailq | tail -n +2 | grep -v '^ *(' | awk 'BEGIN { RS = "" } { print $8 }' | sort | uniq -c | sort -n | tail -n 20
+}
+
+show_rand() {
+    files=$(ls /var/spool/postfix/deferred/?/* | shuf | head -n 3)
+    for file in $files; do
+        echo ">>>> $file";
+        strings "$file"
+        echo;
+    done
+}
+
+tmpl_email() {
+    sender=${SSH_GSSAPI_NAME%%/*}
+    if [[ $# -eq 0 ]]; then
+        echo "Please specific a locker to generate template for." >&2
+        exit 1
+    fi
+    for locker in "$@"; do
+        locker=$(clean_locker "$locker")
+        echo "fs la /mit/$locker/"
+        fs la "/mit/$locker"
+        echo
+        cat <<-EOF
+The scripts.mit.edu servers currently have a large number of email messages destined for the *$locker* account that are not being handled by your account and are being queued. Sufficiently large numbers of queued messages can cause stability issues for the servers, so we would like you to ensure that your account can handle all messages it receives by two weeks from now.
+
+You will be able to process the incoming messages if you sign up for the mail scripts service (http://scripts.mit.edu/mail/). You're welcome to simply forward all incoming mail to another address (the default is to forward it to the mit.edu address of the user who signs up); otherwise, you can configure mail scripts to process the incoming messages in some suitable fashion.
+
+Frequently, large numbers of queued messages are a sign that some wiki, blog, forum, or other site has been spammed. If this is the case, you should apply some appropriate spam-blocking mechanism.
+
+If you have any questions, feel free to contact us.
+
+Thanks,
+scripts.mit.edu team
+scripts@mit.edu --- semi-private
+scripts-root@mit.edu --- service maintainers only
+EOF
+        echo;echo
+    done
+}
+
+purge() {
+    if [[ $# -eq 0 ]]; then
+        echo "Please specific a locker to purge emails for." >&2
+        exit 1
+    fi
+    for locker in "$@"; do
+        locker=$(clean_locker "$locker")
+        echo "$locker..."
+        mailq | tail -n +2 | grep -v '^ *(' | awk "BEGIN { RS = \"\" } (\$8 == \"$locker@scripts.mit.edu\" && \$9 == \"\") { print \$1 }" | tr -d '*!' | postsuper -d -
+        echo
+    done
+}
+
+op=${1:-}
+
+# We want to go ahead and show the usage message if there are no args, so
+# don't let the shift fail and end the script because of "set -e"
+shift || :
+
+case "$op" in
+    list) list;;
+    show-rand) show_rand;;
+    email) tmpl_email "$@";;
+    purge) purge "$@";;
+    *)
+        echo "$usage" >&2;
+        exit 1
+        ;;
+esac
+
+# vim: set sts=4 sw=4 et:
Index: branches/fc19-dev/server/fedora/config/etc/ssh/sshd_config
===================================================================
--- branches/fc19-dev/server/fedora/config/etc/ssh/sshd_config	(revision 2431)
+++ branches/fc19-dev/server/fedora/config/etc/ssh/sshd_config	(revision 2434)
@@ -6,4 +6,5 @@
 GSSAPICleanupCredentials yes
 GSSAPIStrictAcceptorCheck no
+GSSAPIKeyExchange yes
 UsePAM yes
 AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
Index: branches/fc19-dev/server/fedora/specs/nss_nonlocal.spec
===================================================================
--- branches/fc19-dev/server/fedora/specs/nss_nonlocal.spec	(revision 2431)
+++ branches/fc19-dev/server/fedora/specs/nss_nonlocal.spec	(revision 2434)
@@ -2,5 +2,5 @@
 Group: System Environment/Libraries
 Name: nss_nonlocal
-Version: 2.0
+Version: 2.1
 Release: 1
 URL: http://debathena.mit.edu/nss_nonlocal/
@@ -63,4 +63,7 @@
 %changelog
 
+* Thu Jun 13 2013 Anders Kaseorg <andersk@mit.edu> 2.1-1
+- New upstream version.
+
 * Tue Mar 29 2011 Anders Kaseorg <andersk@mit.edu> 2.0-1
 - New upstream version.
