change log for rtems (2010-07-13)

rtems-vc at rtems.org rtems-vc at rtems.org
Tue Jul 13 22:11:24 UTC 2010


 *joel*:
2010-07-12	Bharath Suri <bharath.s.jois at gmail.com>

	PR 1613/testing
	* psxfchx01/init.c, psxfchx01/Makefile.am, psxfchx01/.cvsignore,
	psxfchx01/psxfchx01.doc, psxfchx01/psxfchx01.scn: New
	tests. Improves coverage of fchdir, fchmod, fchown directives.
	* configure.ac, Makefile.am: Changes to accommodate new test.
	* psxstat/test.c, psxstat/psxstat.scn: Added new test case to test
	statvfs routine under libcsupport.

M  1.292  testsuites/psxtests/ChangeLog
M   1.67  testsuites/psxtests/Makefile.am
M   1.71  testsuites/psxtests/configure.ac
A    1.1  testsuites/psxtests/psxfchx01/.cvsignore
A    1.1  testsuites/psxtests/psxfchx01/Makefile.am
A    1.1  testsuites/psxtests/psxfchx01/init.c
A    1.1  testsuites/psxtests/psxfchx01/psxfchx01.doc
A    1.1  testsuites/psxtests/psxfchx01/psxfchx01.scn
M   1.11  testsuites/psxtests/psxstat/psxstat.scn
M   1.28  testsuites/psxtests/psxstat/test.c

diff -u rtems/testsuites/psxtests/ChangeLog:1.291 rtems/testsuites/psxtests/ChangeLog:1.292
--- rtems/testsuites/psxtests/ChangeLog:1.291	Fri Jul  9 17:07:11 2010
+++ rtems/testsuites/psxtests/ChangeLog	Tue Jul 13 16:13:12 2010
@@ -1,3 +1,13 @@
+2010-07-12	Bharath Suri <bharath.s.jois at gmail.com>
+
+	PR 1613/testing
+	* psxfchx01/init.c, psxfchx01/Makefile.am, psxfchx01/.cvsignore,
+	psxfchx01/psxfchx01.doc, psxfchx01/psxfchx01.scn: New
+	tests. Improves coverage of fchdir, fchmod, fchown directives.
+	* configure.ac, Makefile.am: Changes to accommodate new test.
+	* psxstat/test.c, psxstat/psxstat.scn: Added new test case to test
+	statvfs routine under libcsupport.
+
 2010-07-09	Bharath Suri <bharath.s.jois at gmail.com>
 
 	PR 1610/testing

diff -u rtems/testsuites/psxtests/Makefile.am:1.66 rtems/testsuites/psxtests/Makefile.am:1.67
--- rtems/testsuites/psxtests/Makefile.am:1.66	Fri Jul  9 17:07:11 2010
+++ rtems/testsuites/psxtests/Makefile.am	Tue Jul 13 16:13:12 2010
@@ -21,7 +21,7 @@
 ## File IO tests
 SUBDIRS += psxfile01 psxfile02 psxfilelock01 psxgetrusage01 psxid01 \
     psximfs01 psxreaddir psxstat psxmount psx13 psxchroot01 psxpasswd01 \
-    psxpasswd02 psxpipe01 psxtimes01
+    psxpasswd02 psxpipe01 psxtimes01 psxfchx01
 
 ## Until sys/uio.h is moved to libcsupport, we have to have networking
 ## enabled to support readv and writev.  Hopefully this is a temporary

diff -u rtems/testsuites/psxtests/configure.ac:1.70 rtems/testsuites/psxtests/configure.ac:1.71
--- rtems/testsuites/psxtests/configure.ac:1.70	Fri Jul  9 17:07:11 2010
+++ rtems/testsuites/psxtests/configure.ac	Tue Jul 13 16:13:12 2010
@@ -86,6 +86,7 @@
 psxenosys/Makefile
 psxfatal01/Makefile
 psxfatal02/Makefile
+psxfchx01/Makefile
 psxfile01/Makefile
 psxfile02/Makefile
 psxfilelock01/Makefile

diff -u /dev/null rtems/testsuites/psxtests/psxfchx01/.cvsignore:1.1
--- /dev/null	Tue Jul 13 17:11:23 2010
+++ rtems/testsuites/psxtests/psxfchx01/.cvsignore	Tue Jul 13 16:13:12 2010
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in

diff -u /dev/null rtems/testsuites/psxtests/psxfchx01/Makefile.am:1.1
--- /dev/null	Tue Jul 13 17:11:23 2010
+++ rtems/testsuites/psxtests/psxfchx01/Makefile.am	Tue Jul 13 16:13:12 2010
@@ -0,0 +1,28 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = psxfchx01
+psxfchx01_SOURCES = init.c ../include/pmacros.h
+
+dist_rtems_tests_DATA = psxfchx01.scn
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP at .cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+psxfchx01_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/include
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+
+LINK_OBJS = $(psxfchx01_OBJECTS) $(psxfchx01_LDADD)
+LINK_LIBS = $(psxfchx01_LDLIBS)
+
+psxfchx01$(EXEEXT): $(psxfchx01_OBJECTS) $(psxfchx01_DEPENDENCIES)
+	@rm -f psxfchx01$(EXEEXT)
+	$(make-exe)
+
+include $(top_srcdir)/../automake/local.am

diff -u /dev/null rtems/testsuites/psxtests/psxfchx01/init.c:1.1
--- /dev/null	Tue Jul 13 17:11:23 2010
+++ rtems/testsuites/psxtests/psxfchx01/init.c	Tue Jul 13 16:13:12 2010
@@ -0,0 +1,226 @@
+/*
+ *  COPYRIGHT (c) 1989-2010.
+ *  On-Line Applications Research Corporation (OAR).
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.rtems.com/license/LICENSE.
+ *
+ *  $Id$
+ */
+
+#include <bsp.h>
+#include <pmacros.h>
+#include <unistd.h>
+#include <errno.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
+
+rtems_task Init(
+  rtems_task_argument ignored
+)
+{
+  int status = 0;
+  int fd = 0;
+
+  puts( "*** TEST Posix file op tests - 01 ***" );
+
+  /****************************************************
+   *                   fchdir tests
+   ***************************************************/
+
+  puts( "Init - fchdir tests" );
+
+  puts( "Init - Attempt fchdir with bad file descriptor - expect EBADF" );
+  status = fchdir( 5 );
+  rtems_test_assert( status == -1 );
+  rtems_test_assert( errno == EBADF );
+
+  puts( "Init - Attempt fchdir with bad file descriptor - expect EBADF" );
+  status = fchdir( 3 );
+  rtems_test_assert( status == -1 );
+  rtems_test_assert( errno == EBADF );
+  
+  puts( "Init - opening /newfile in write-mode -- OK" );
+  fd = open( "/newfile", O_WRONLY | O_CREAT, S_IWUSR );
+  rtems_test_assert( fd != -1 );
+
+  puts( "Init - fchdir on the file descriptor - expect EINVAL" );
+  status = fchdir( fd );
+  rtems_test_assert( status == -1 );
+  rtems_test_assert( errno == EINVAL );
+
+  puts(" Init - closing /newfile -- OK" );
+  status = close( fd );
+  rtems_test_assert( status == 0 );
+
+  puts( "Init - removing /newfile -- OK" );
+  status = unlink( "/newfile" );
+  rtems_test_assert( status == 0 );
+
+  puts( "Init - opening /newfile in read-mode -- OK" );
+  fd = open( "/newfile", O_RDONLY | O_CREAT, S_IRUSR);
+  rtems_test_assert( fd != -1 );
+  
+  puts( "Init - fchdir on the file descriptor - expect ENOTDIR" );
+  status = fchdir( fd );
+  rtems_test_assert( status == -1 );
+  rtems_test_assert( errno == ENOTDIR );
+
+  puts( "Init - closing and removing /newfile -- OK" );
+  status = close( fd );
+  status |= unlink( "/newfile" );
+  rtems_test_assert( status == 0 );
+
+  puts( "Init - create directory  /tmp - RWX permissions -- OK" );
+  status = mkdir( "/tmp", S_IRWXU );
+  rtems_test_assert( status == 0 );
+
+  puts( "Init - open the /tmp, get the file descriptor -- OK" );
+  fd = open( "/tmp", O_RDONLY );
+  rtems_test_assert( fd != -1 );
+
+  puts( "Init - fchdir on the file descriptor -- OK" );
+  status = fchdir( fd );
+  rtems_test_assert( status == 0 );
+
+  puts( "Init - close the file descriptor -- OK" );
+  status = close( fd );
+  rtems_test_assert( status == 0 );
+
+  puts( "Init - remove directory /tmp -- OK" );
+  status = rmdir( "/tmp" );
+  rtems_test_assert( status == 0 );
+
+  puts( "Init - creating directory /tmp - read permission -- OK" );
+  status = mkdir( "/tmp", S_IRUSR );
+  rtems_test_assert( status == 0 );
+
+  puts( "Init - open the /tmp, get the file descriptor -- OK" );
+  fd = open( "/tmp", O_RDONLY );
+  rtems_test_assert( fd != -1 );
+
+  puts( "Init - attempt fchdir on the file descriptor -- expect EACCES" );
+  status = fchdir( fd );
+  rtems_test_assert( status == -1);
+  rtems_test_assert( errno == EACCES );
+
+  puts( "Init - close the file descriptor -- OK" );
+  status = close( fd );
+  rtems_test_assert( status == 0 );
+
+  puts( "Init - remove directory /tmp -- OK" );
+  status = rmdir( "/tmp" );
+  rtems_test_assert( status == 0 );
+
+  puts( "End of fchdir tests" );
+
+  /****************************************************
+   *                   fchmod tests
+   ***************************************************/
+
+  puts( "\nInit - fchmod tests" );
+
+  puts( "Init - fchmod, with a bad file descriptor - expect EBADF" );
+  status = fchmod( 4, 0 );
+  rtems_test_assert( status == -1 );
+  rtems_test_assert( errno == EBADF );
+
+  puts( "Init - fchmod, with an unopened file descriptor - expect EBADF" );
+  status = fchmod( 3, 0 );
+  rtems_test_assert( status == -1 );
+  rtems_test_assert( errno == EBADF );
+
+  puts( "Init - open new file: /newfile in read-only mode -- OK" );
+  fd = open( "/newfile", O_RDONLY | O_CREAT, S_IRWXU );
+  rtems_test_assert( fd != -1 );
+  
+  puts( "Init - fchmod, with the opened file descriptor - expect EINVAL" );
+  status = fchmod( fd, 0 );
+  rtems_test_assert( status == -1 );
+  rtems_test_assert( errno == EINVAL );
+
+  puts(" Init - close and remove /newfile" );
+  status = close( fd );
+  status |= unlink( "/newfile" );
+  rtems_test_assert( status == 0 );
+
+  puts( "Init - open new file: /newfile in read-write mode -- OK" );
+  fd = open( "/newfile", O_RDWR | O_CREAT, S_IRWXU );
+  rtems_test_assert( fd != -1 );
+  
+  puts( "Init - fchmod, with the opened file descriptor -- OK" );
+  status = fchmod( fd, S_IRUSR );
+  rtems_test_assert( status == 0 );
+
+  puts(" Init - close and remove /newfile -- OK" );
+  status = close( fd );
+  status |= unlink( "/newfile" );
+  rtems_test_assert( status == 0 );
+
+  puts( "End of fchmod tests" );
+
+  /****************************************************
+   *                   fchown tests
+   ***************************************************/
+
+  puts( "\nInit - fchown tests" );
+
+  puts( "Init - fchown, with a bad file descriptor - expect EBADF" );
+  status = fchown( 4, 0, 0 );
+  rtems_test_assert( status == -1 );
+  rtems_test_assert( errno == EBADF );
+
+  puts( "Init - fchown, with an unopened file descriptor - expect EBADF" );
+  status = fchown( 3, 0, 0 );
+  rtems_test_assert( status == -1 );
+  rtems_test_assert( errno == EBADF );
+
+  puts( "Init - open new file: /newfile in read-only mode -- OK" );
+  fd = open( "/newfile", O_RDONLY | O_CREAT, S_IRWXU );
+  rtems_test_assert( fd != -1 );
+  
+  puts( "Init - fchown, with the opened file descriptor - expect EINVAL" );
+  status = fchown( fd, 0, 0 );
+  rtems_test_assert( status == -1 );
+  rtems_test_assert( errno == EINVAL );
+
+  puts(" Init - close and remove /newfile" );
+  status = close( fd );
+  status |= unlink( "/newfile" );
+  rtems_test_assert( status == 0 );
+
+  puts( "Init - open new file: /newfile in read-write mode -- OK" );
+  fd = open( "/newfile", O_RDWR | O_CREAT, S_IRWXU );
+  rtems_test_assert( fd != -1 );
+  
+  puts( "Init - fchown, with the opened file descriptor -- OK" );
+  status = fchown( fd, 1, 0 );
+  rtems_test_assert( status == 0 );
+
+  puts(" Init - close and remove /newfile -- OK" );
+  status = close( fd );
+  status |= unlink( "/newfile" );
+  rtems_test_assert( status == 0 );
+
+  puts( "End of fchown tests" );
+
+  puts( "*** END OF TEST Posix file op tests - 01 ***" );
+  rtems_test_exit( 0 );
+}
+
+/* configuration information */
+
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+
+#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
+#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 4
+
+#define CONFIGURE_MAXIMUM_TASKS 1
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+#define CONFIGURE_INIT
+#include <rtems/confdefs.h>
+/* end of file */

diff -u /dev/null rtems/testsuites/psxtests/psxfchx01/psxfchx01.doc:1.1
--- /dev/null	Tue Jul 13 17:11:23 2010
+++ rtems/testsuites/psxtests/psxfchx01/psxfchx01.doc	Tue Jul 13 16:13:12 2010
@@ -0,0 +1,25 @@
+#
+#  $Id$
+#
+#  COPYRIGHT (c) 1989-2009.
+#  On-Line Applications Research Corporation (OAR).
+#
+#  The license and distribution terms for this file may be
+#  found in the file LICENSE in this distribution or at
+#  http://www.rtems.com/license/LICENSE.
+#
+
+This file describes the directives and concepts tested by this test set.
+
+test set name:  psxfchx01
+
+directives:
+
++ fchdir
++ fchmod
++ fchown
+
+concepts:
+
++ Exercise the fildes based operations - fchdir, fchmod, fchown
+

diff -u /dev/null rtems/testsuites/psxtests/psxfchx01/psxfchx01.scn:1.1
--- /dev/null	Tue Jul 13 17:11:23 2010
+++ rtems/testsuites/psxtests/psxfchx01/psxfchx01.scn	Tue Jul 13 16:13:12 2010
@@ -0,0 +1,45 @@
+*** TEST Posix file op tests - 01 ***
+Init - fchdir tests
+Init - Attempt fchdir with bad file descriptor - expect EBADF
+Init - Attempt fchdir with bad file descriptor - expect EBADF
+Init - opening /newfile in write-mode -- OK
+Init - fchdir on the file descriptor - expect EINVAL
+ Init - closing /newfile -- OK
+Init - removing /newfile -- OK
+Init - opening /newfile in read-mode -- OK
+Init - fchdir on the file descriptor - expect ENOTDIR
+Init - closing and removing /newfile -- OK
+Init - create directory  /tmp - RWX permissions -- OK
+Init - open the /tmp, get the file descriptor -- OK
+Init - fchdir on the file descriptor -- OK
+Init - close the file descriptor -- OK
+Init - remove directory /tmp -- OK
+Init - creating directory /tmp - read permission -- OK
+Init - open the /tmp, get the file descriptor -- OK
+Init - attempt fchdir on the file descriptor -- expect EACCES
+Init - close the file descriptor -- OK
+Init - remove directory /tmp -- OK
+End of fchdir tests
+
+Init - fchmod tests
+Init - fchmod, with a bad file descriptor - expect EBADF
+Init - fchmod, with an unopened file descriptor - expect EBADF
+Init - open new file: /newfile in read-only mode -- OK
+Init - fchmod, with the opened file descriptor - expect EINVAL
+ Init - close and remove /newfile
+Init - open new file: /newfile in read-write mode -- OK
+Init - fchmod, with the opened file descriptor -- OK
+ Init - close and remove /newfile -- OK
+End of fchmod tests
+
+Init - fchown tests
+Init - fchown, with a bad file descriptor - expect EBADF
+Init - fchown, with an unopened file descriptor - expect EBADF
+Init - open new file: /newfile in read-only mode -- OK
+Init - fchown, with the opened file descriptor - expect EINVAL
+ Init - close and remove /newfile
+Init - open new file: /newfile in read-write mode -- OK
+Init - fchown, with the opened file descriptor -- OK
+ Init - close and remove /newfile -- OK
+End of fchown tests
+*** END OF TEST Posix file op tests - 01 ***

diff -u rtems/testsuites/psxtests/psxstat/psxstat.scn:1.10 rtems/testsuites/psxtests/psxstat/psxstat.scn:1.11
--- rtems/testsuites/psxtests/psxstat/psxstat.scn:1.10	Thu Jul  1 12:23:47 2010
+++ rtems/testsuites/psxtests/psxstat/psxstat.scn	Tue Jul 13 16:13:12 2010
@@ -1,3 +1,4 @@
+
 *** STAT TEST 01 ***
 --->Current Time:  - rtems_clock_get_tod - 09:00:00   12/31/1988
 Making directory /my_mount_point/dir1
@@ -1703,6 +1704,10 @@
 ...st_ctime   Sat Dec 31 09:00:35 1988
 ...st_blksize 0
 ...st_blocks  0
+statvfs, with invalid path - expect EFAULT
+create /tmp -- OK
+statvfs, with valid path - expect ENOTSUP
+statvfs tested!
 
 
 *** END OF STAT TEST 01 ***

diff -u rtems/testsuites/psxtests/psxstat/test.c:1.27 rtems/testsuites/psxtests/psxstat/test.c:1.28
--- rtems/testsuites/psxtests/psxstat/test.c:1.27	Thu Jul  1 12:23:47 2010
+++ rtems/testsuites/psxtests/psxstat/test.c	Tue Jul 13 16:13:13 2010
@@ -774,6 +774,29 @@
   print_time( " - rtems_clock_get_tod - ", &time, "\n" );
 }
 
+void test_statvfs( void )
+{
+
+  int status = 0;
+  struct statvfs stat;
+
+  puts( "statvfs, with invalid path - expect EFAULT" );
+  status = statvfs( NULL , &stat );
+  rtems_test_assert( status == -1 );
+  rtems_test_assert( errno == EFAULT );
+
+  puts( "create /tmp -- OK" );
+  status = mkdir( "/tmp", 0777 );
+  rtems_test_assert( status == 0 );
+
+  puts( "statvfs, with valid path - expect ENOTSUP" );
+  status = statvfs( "/tmp", &stat );
+  rtems_test_assert( status == -1 );
+  rtems_test_assert( errno == ENOTSUP );
+
+  puts( "statvfs tested!" );
+}
+
 /*
  *  main entry point to the test
  */
@@ -902,6 +925,8 @@
   status = rtems_task_wake_after( TIMEOUT_VALUE );
   lchown_multiple_files( SymLinks );
 
+  test_statvfs();
+
   puts( "\n\n*** END OF STAT TEST 01 ***" );
   rtems_test_exit(0);
 }


 *joel*:
2010-07-13	Vinu Rajashekhar <vinutheraj at gmail.com>

	PR 1614/filesystem
	* libfs/src/imfs/fifoimfs_init.c, libfs/src/imfs/imfs.h,
	libfs/src/imfs/imfs_load_tar.c: Fix rtems_tarfs_load to work with
	pipe filesystem.

M 1.2501  cpukit/ChangeLog
M    1.2  cpukit/libfs/src/imfs/fifoimfs_init.c
M   1.44  cpukit/libfs/src/imfs/imfs.h
M   1.17  cpukit/libfs/src/imfs/imfs_load_tar.c

diff -u rtems/cpukit/ChangeLog:1.2500 rtems/cpukit/ChangeLog:1.2501
--- rtems/cpukit/ChangeLog:1.2500	Mon Jul 12 08:51:59 2010
+++ rtems/cpukit/ChangeLog	Tue Jul 13 16:43:32 2010
@@ -1,3 +1,10 @@
+2010-07-13	Vinu Rajashekhar <vinutheraj at gmail.com>
+
+	PR 1614/filesystem
+	* libfs/src/imfs/fifoimfs_init.c, libfs/src/imfs/imfs.h,
+	libfs/src/imfs/imfs_load_tar.c: Fix rtems_tarfs_load to work with
+	pipe filesystem.
+
 2010-07-12	Jennifer Averett
 
 	* libnetworking/rtems/rtems_syscall.c: Replaced null socket handlers

diff -u rtems/cpukit/libfs/src/imfs/fifoimfs_init.c:1.1 rtems/cpukit/libfs/src/imfs/fifoimfs_init.c:1.2
--- rtems/cpukit/libfs/src/imfs/fifoimfs_init.c:1.1	Tue Jun  8 05:25:40 2010
+++ rtems/cpukit/libfs/src/imfs/fifoimfs_init.c	Tue Jul 13 16:43:32 2010
@@ -25,7 +25,7 @@
 
 #include "imfs.h"
 
-static const rtems_filesystem_operations_table fifoIMFS_ops = {
+const rtems_filesystem_operations_table fifoIMFS_ops = {
   .evalpath_h = IMFS_eval_path,
   .evalformake_h = IMFS_evaluate_for_make,
   .link_h = IMFS_link,
@@ -43,7 +43,7 @@
   .symlink_h = IMFS_symlink,
   .readlink_h = IMFS_readlink,
   .rename_h = IMFS_rename,
-  .statvfs_h = NULL
+  .statvfs_h = rtems_filesystem_default_statvfs
 };
 
 int fifoIMFS_initialize(

diff -u rtems/cpukit/libfs/src/imfs/imfs.h:1.43 rtems/cpukit/libfs/src/imfs/imfs.h:1.44
--- rtems/cpukit/libfs/src/imfs/imfs.h:1.43	Tue Jun  8 05:25:44 2010
+++ rtems/cpukit/libfs/src/imfs/imfs.h	Tue Jul 13 16:43:32 2010
@@ -248,6 +248,7 @@
 extern const rtems_filesystem_file_handlers_r       IMFS_memfile_handlers;
 extern const rtems_filesystem_file_handlers_r       IMFS_fifo_handlers;
 extern const rtems_filesystem_operations_table      IMFS_ops;
+extern const rtems_filesystem_operations_table      fifoIMFS_ops;
 extern const rtems_filesystem_limits_and_options_t  IMFS_LIMITS_AND_OPTIONS;
 
 /*

diff -u rtems/cpukit/libfs/src/imfs/imfs_load_tar.c:1.16 rtems/cpukit/libfs/src/imfs/imfs_load_tar.c:1.17
--- rtems/cpukit/libfs/src/imfs/imfs_load_tar.c:1.16	Sat Jun 12 22:36:34 2010
+++ rtems/cpukit/libfs/src/imfs/imfs_load_tar.c	Tue Jul 13 16:43:32 2010
@@ -108,7 +108,8 @@
    if (status != 0)
       return -1;
 
-   if (root_loc.ops != &IMFS_ops)
+   if (root_loc.ops != &IMFS_ops
+       && root_loc.ops != &fifoIMFS_ops)
       return -1;
 
    /*



--

Generated by Deluxe Loginfo [http://www.codewiz.org/projects/index.html#loginfo] 2.122 by Bernardo Innocenti <bernie at develer.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/vc/attachments/20100713/2e0564cb/attachment-0001.html>


More information about the vc mailing list