[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21718] branches/soundsystem: audaspace update including build system adoptions for linux, all other OSs are not expected to work yet due to missing libsamplerate aka SRC

Jörg Müller nexyon at gmail.com
Mon Jul 20 14:05:18 CEST 2009


Revision: 21718
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21718
Author:   nexyon
Date:     2009-07-20 14:05:18 +0200 (Mon, 20 Jul 2009)

Log Message:
-----------
audaspace update including build system adoptions for linux, all other OSs are not expected to work yet due to missing libsamplerate aka SRC

Modified Paths:
--------------
    branches/soundsystem/CMakeLists.txt
    branches/soundsystem/config/darwin-config.py
    branches/soundsystem/config/irix6-config.py
    branches/soundsystem/config/linux2-config.py
    branches/soundsystem/config/linuxcross-config.py
    branches/soundsystem/config/openbsd3-config.py
    branches/soundsystem/config/sunos5-config.py
    branches/soundsystem/config/win32-mingw-config.py
    branches/soundsystem/config/win32-vc-config.py
    branches/soundsystem/config/win64-vc-config.py
    branches/soundsystem/intern/audaspace/AUD_C-API.h
    branches/soundsystem/intern/audaspace/CMakeLists.txt
    branches/soundsystem/intern/audaspace/SConscript
    branches/soundsystem/intern/audaspace/SDL/AUD_SDLDevice.cpp
    branches/soundsystem/intern/audaspace/SDL/AUD_SDLDevice.h
    branches/soundsystem/intern/audaspace/SDL/AUD_SDLMixerFactory.cpp
    branches/soundsystem/intern/audaspace/SDL/AUD_SDLMixerFactory.h
    branches/soundsystem/intern/audaspace/SDL/AUD_SDLMixerReader.cpp
    branches/soundsystem/intern/audaspace/SDL/AUD_SDLMixerReader.h
    branches/soundsystem/intern/audaspace/ffmpeg/AUD_FFMPEGFactory.cpp
    branches/soundsystem/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
    branches/soundsystem/intern/audaspace/ffmpeg/AUD_FFMPEGReader.h
    branches/soundsystem/intern/audaspace/intern/AUD_Buffer.cpp
    branches/soundsystem/intern/audaspace/intern/AUD_Buffer.h
    branches/soundsystem/intern/audaspace/intern/AUD_BufferReader.cpp
    branches/soundsystem/intern/audaspace/intern/AUD_BufferReader.h
    branches/soundsystem/intern/audaspace/intern/AUD_C-API.cpp
    branches/soundsystem/intern/audaspace/intern/AUD_IDevice.h
    branches/soundsystem/intern/audaspace/intern/AUD_IReader.h
    branches/soundsystem/intern/audaspace/intern/AUD_MixerFactory.cpp
    branches/soundsystem/intern/audaspace/intern/AUD_MixerFactory.h
    branches/soundsystem/intern/audaspace/intern/AUD_Reference.h
    branches/soundsystem/intern/audaspace/intern/AUD_SinusReader.cpp
    branches/soundsystem/intern/audaspace/intern/AUD_SinusReader.h
    branches/soundsystem/intern/audaspace/intern/AUD_SoftwareDevice.cpp
    branches/soundsystem/intern/audaspace/intern/AUD_SoftwareDevice.h
    branches/soundsystem/intern/audaspace/intern/AUD_Space.h
    branches/soundsystem/intern/audaspace/intern/AUD_StreamBufferFactory.cpp
    branches/soundsystem/source/gameengine/Ketsji/KX_SoundActuator.cpp
    branches/soundsystem/tools/Blender.py
    branches/soundsystem/tools/btools.py

Added Paths:
-----------
    branches/soundsystem/intern/audaspace/FX/
    branches/soundsystem/intern/audaspace/FX/AUD_DelayFactory.cpp
    branches/soundsystem/intern/audaspace/FX/AUD_DelayFactory.h
    branches/soundsystem/intern/audaspace/FX/AUD_DelayReader.cpp
    branches/soundsystem/intern/audaspace/FX/AUD_DelayReader.h
    branches/soundsystem/intern/audaspace/FX/AUD_DoubleReader.cpp
    branches/soundsystem/intern/audaspace/FX/AUD_DoubleReader.h
    branches/soundsystem/intern/audaspace/FX/AUD_EffectFactory.cpp
    branches/soundsystem/intern/audaspace/FX/AUD_EffectFactory.h
    branches/soundsystem/intern/audaspace/FX/AUD_EffectReader.cpp
    branches/soundsystem/intern/audaspace/FX/AUD_EffectReader.h
    branches/soundsystem/intern/audaspace/FX/AUD_FaderFactory.cpp
    branches/soundsystem/intern/audaspace/FX/AUD_FaderFactory.h
    branches/soundsystem/intern/audaspace/FX/AUD_FaderReader.cpp
    branches/soundsystem/intern/audaspace/FX/AUD_FaderReader.h
    branches/soundsystem/intern/audaspace/FX/AUD_LimiterFactory.cpp
    branches/soundsystem/intern/audaspace/FX/AUD_LimiterFactory.h
    branches/soundsystem/intern/audaspace/FX/AUD_LimiterReader.cpp
    branches/soundsystem/intern/audaspace/FX/AUD_LimiterReader.h
    branches/soundsystem/intern/audaspace/FX/AUD_LoopFactory.cpp
    branches/soundsystem/intern/audaspace/FX/AUD_LoopFactory.h
    branches/soundsystem/intern/audaspace/FX/AUD_LoopReader.cpp
    branches/soundsystem/intern/audaspace/FX/AUD_LoopReader.h
    branches/soundsystem/intern/audaspace/FX/AUD_PingPongFactory.cpp
    branches/soundsystem/intern/audaspace/FX/AUD_PingPongFactory.h
    branches/soundsystem/intern/audaspace/FX/AUD_PitchFactory.cpp
    branches/soundsystem/intern/audaspace/FX/AUD_PitchFactory.h
    branches/soundsystem/intern/audaspace/FX/AUD_PitchReader.cpp
    branches/soundsystem/intern/audaspace/FX/AUD_PitchReader.h
    branches/soundsystem/intern/audaspace/FX/AUD_ReverseFactory.cpp
    branches/soundsystem/intern/audaspace/FX/AUD_ReverseFactory.h
    branches/soundsystem/intern/audaspace/FX/AUD_ReverseReader.cpp
    branches/soundsystem/intern/audaspace/FX/AUD_ReverseReader.h
    branches/soundsystem/intern/audaspace/FX/AUD_VolumeFactory.cpp
    branches/soundsystem/intern/audaspace/FX/AUD_VolumeFactory.h
    branches/soundsystem/intern/audaspace/FX/AUD_VolumeReader.cpp
    branches/soundsystem/intern/audaspace/FX/AUD_VolumeReader.h
    branches/soundsystem/intern/audaspace/OpenAL/
    branches/soundsystem/intern/audaspace/OpenAL/AUD_OpenALDevice.cpp
    branches/soundsystem/intern/audaspace/OpenAL/AUD_OpenALDevice.h
    branches/soundsystem/intern/audaspace/SDL/AUD_SDLMixer.cpp
    branches/soundsystem/intern/audaspace/SDL/AUD_SDLMixer.h
    branches/soundsystem/intern/audaspace/SRC/
    branches/soundsystem/intern/audaspace/SRC/AUD_SRCResampleFactory.cpp
    branches/soundsystem/intern/audaspace/SRC/AUD_SRCResampleFactory.h
    branches/soundsystem/intern/audaspace/SRC/AUD_SRCResampleReader.cpp
    branches/soundsystem/intern/audaspace/SRC/AUD_SRCResampleReader.h
    branches/soundsystem/intern/audaspace/intern/AUD_ChannelMapperFactory.cpp
    branches/soundsystem/intern/audaspace/intern/AUD_ChannelMapperFactory.h
    branches/soundsystem/intern/audaspace/intern/AUD_ChannelMapperReader.cpp
    branches/soundsystem/intern/audaspace/intern/AUD_ChannelMapperReader.h
    branches/soundsystem/intern/audaspace/intern/AUD_ConverterFactory.cpp
    branches/soundsystem/intern/audaspace/intern/AUD_ConverterFactory.h
    branches/soundsystem/intern/audaspace/intern/AUD_ConverterFunctions.cpp
    branches/soundsystem/intern/audaspace/intern/AUD_ConverterFunctions.h
    branches/soundsystem/intern/audaspace/intern/AUD_ConverterReader.cpp
    branches/soundsystem/intern/audaspace/intern/AUD_ConverterReader.h
    branches/soundsystem/intern/audaspace/intern/AUD_FloatMixer.cpp
    branches/soundsystem/intern/audaspace/intern/AUD_FloatMixer.h
    branches/soundsystem/intern/audaspace/intern/AUD_I3DDevice.h
    branches/soundsystem/intern/audaspace/intern/AUD_IMixer.h
    branches/soundsystem/intern/audaspace/intern/AUD_NULLDevice.cpp
    branches/soundsystem/intern/audaspace/intern/AUD_NULLDevice.h
    branches/soundsystem/intern/audaspace/intern/AUD_ReadDevice.cpp
    branches/soundsystem/intern/audaspace/intern/AUD_ReadDevice.h
    branches/soundsystem/intern/audaspace/intern/AUD_ResampleFactory.h
    branches/soundsystem/intern/audaspace/intern/AUD_SourceCaps.h

Removed Paths:
-------------
    branches/soundsystem/intern/audaspace/SDL/AUD_SDLSuperposer.cpp
    branches/soundsystem/intern/audaspace/SDL/AUD_SDLSuperposer.h
    branches/soundsystem/intern/audaspace/intern/AUD_ISuperposer.h

Modified: branches/soundsystem/CMakeLists.txt
===================================================================
--- branches/soundsystem/CMakeLists.txt	2009-07-20 11:30:27 UTC (rev 21717)
+++ branches/soundsystem/CMakeLists.txt	2009-07-20 12:05:18 UTC (rev 21718)
@@ -66,6 +66,7 @@
 OPTION(WITH_OPENJPEG		"Enable OpenJpeg Support (http://www.openjpeg.org/)"	OFF)
 OPTION(WITH_OPENAL		"Enable OpenAL Support (http://www.openal.org)"		ON)
 OPTION(WITH_OPENMP		"Enable OpenMP (has to be supported by the compiler)"	OFF)
+OPTION(WITH_SDL		"Enable SDL Support(http://www.libsdl.org/)"	ON)
 OPTION(WITH_WEBPLUGIN		"Enable Web Plugin (Unix only)"				OFF)
 
 IF(NOT WITH_GAMEENGINE AND WITH_PLAYER)
@@ -154,6 +155,11 @@
   SET(FFMPEG_LIB avformat avcodec avutil avdevice swscale)
   SET(FFMPEG_LIBPATH ${FFMPEG}/lib)
 
+  SET(LIBSAMPLERATE /usr)
+  SET(LIBSAMPLERATE_INC ${LIBSAMPLERATE}/include)
+  SET(LIBSAMPLERATE_LIB samplerate)
+  SET(LIBSAMPLERATE_LIBPATH ${LIBSAMPLERATE}/lib)
+
   FIND_PACKAGE(JPEG REQUIRED)
 
   FIND_PACKAGE(PNG REQUIRED)
@@ -268,6 +274,11 @@
   SET(FFMPEG_LIB avcodec-52 avformat-52 avdevice-52 avutil-50 swscale-0)
   SET(FFMPEG_LIBPATH ${FFMPEG}/lib)
 
+  SET(LIBSAMPLERATE ${LIBDIR}/SRC)
+  SET(LIBSAMPLERATE_INC ${LIBSAMPLERATE}/include)
+  SET(LIBSAMPLERATE_LIB samplerate)
+  SET(LIBSAMPLERATE_LIBPATH ${LIBSAMPLERATE}/lib)
+
   IF(CMAKE_CL_64)
   SET(LLIBS kernel32 user32 vfw32 winmm ws2_32 )
   ELSE(CMAKE_CL_64)

Modified: branches/soundsystem/config/darwin-config.py
===================================================================
--- branches/soundsystem/config/darwin-config.py	2009-07-20 11:30:27 UTC (rev 21717)
+++ branches/soundsystem/config/darwin-config.py	2009-07-20 12:05:18 UTC (rev 21718)
@@ -94,6 +94,11 @@
 WITH_BF_STATICCXX = False
 BF_CXX_LIB_STATIC = '${BF_CXX}/lib/libstdc++.a'
 
+BF_LIBSAMPLERATE = LIBDIR + '/SRC'
+BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'
+BF_LIBSAMPLERATE_LIB = 'samplerate'
+BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
+
 WITH_BF_SDL = True
 BF_SDL = LIBDIR + '/sdl' #$(shell sdl-config --prefix)
 BF_SDL_INC = '${BF_SDL}/include' #$(shell $(BF_SDL)/bin/sdl-config --cflags)

Modified: branches/soundsystem/config/irix6-config.py
===================================================================
--- branches/soundsystem/config/irix6-config.py	2009-07-20 11:30:27 UTC (rev 21717)
+++ branches/soundsystem/config/irix6-config.py	2009-07-20 12:05:18 UTC (rev 21718)
@@ -24,6 +24,11 @@
 WITH_BF_STATICCXX = 'false'
 BF_CXX_LIB_STATIC = '${BF_CXX}/lib/libstdc++.a'
 
+BF_LIBSAMPLERATE = LCGDIR+'/SRC'
+BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'
+BF_LIBSAMPLERATE_LIB = 'samplerate'
+BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
+
 WITH_BF_SDL = 'true'
 BF_SDL = LCGDIR+'/sdl' #$(shell sdl-config --prefix)
 BF_SDL_INC = '${BF_SDL}/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags)

Modified: branches/soundsystem/config/linux2-config.py
===================================================================
--- branches/soundsystem/config/linux2-config.py	2009-07-20 11:30:27 UTC (rev 21717)
+++ branches/soundsystem/config/linux2-config.py	2009-07-20 12:05:18 UTC (rev 21718)
@@ -22,7 +22,7 @@
 WITH_BF_OPENAL = True
 WITH_BF_STATICOPENAL = False
 BF_OPENAL = '/usr'
-BF_OPENAL_INC = '${BF_OPENAL}/include'
+BF_OPENAL_INC = '${BF_OPENAL}/include/AL'
 BF_OPENAL_LIB = 'openal'
 BF_OPENAL_LIB_STATIC = '${BF_OPENAL}/lib/libopenal.a'
 
@@ -30,6 +30,11 @@
 WITH_BF_STATICCXX = False
 BF_CXX_LIB_STATIC = '${BF_CXX}/lib/libstdc++.a'
 
+BF_LIBSAMPLERATE = '/usr'
+BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'
+BF_LIBSAMPLERATE_LIB = 'samplerate'
+BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
+
 WITH_BF_SDL = True
 BF_SDL = '/usr' #$(shell sdl-config --prefix)
 BF_SDL_INC = '${BF_SDL}/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags)

Modified: branches/soundsystem/config/linuxcross-config.py
===================================================================
--- branches/soundsystem/config/linuxcross-config.py	2009-07-20 11:30:27 UTC (rev 21717)
+++ branches/soundsystem/config/linuxcross-config.py	2009-07-20 12:05:18 UTC (rev 21718)
@@ -22,6 +22,11 @@
 WITH_BF_STATICCXX = False
 BF_CXX_LIB_STATIC = '${BF_CXX}/lib/libstdc++.a'
 
+BF_LIBSAMPLERATE = LIBDIR + '/SRC'
+BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'
+BF_LIBSAMPLERATE_LIB = 'samplerate'
+BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
+
 WITH_BF_SDL = True
 BF_SDL = LIBDIR + '/sdl'
 BF_SDL_INC = '${BF_SDL}/include'

Modified: branches/soundsystem/config/openbsd3-config.py
===================================================================
--- branches/soundsystem/config/openbsd3-config.py	2009-07-20 11:30:27 UTC (rev 21717)
+++ branches/soundsystem/config/openbsd3-config.py	2009-07-20 12:05:18 UTC (rev 21718)
@@ -16,6 +16,11 @@
 #BF_OPENAL_LIBPATH = '${BF_OPENAL}/lib'
 #BF_OPENAL_LIB_STATIC = '${BF_OPENAL}/lib/libopenal.a'
 
+BF_LIBSAMPLERATE = '/usr/local'
+BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'
+BF_LIBSAMPLERATE_LIB = 'samplerate'
+BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
+
 WITH_BF_SDL = True
 BF_SDL = '/usr/local' #$(shell sdl-config --prefix)
 BF_SDL_INC = '${BF_SDL}/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags)

Modified: branches/soundsystem/config/sunos5-config.py
===================================================================
--- branches/soundsystem/config/sunos5-config.py	2009-07-20 11:30:27 UTC (rev 21717)
+++ branches/soundsystem/config/sunos5-config.py	2009-07-20 12:05:18 UTC (rev 21718)
@@ -22,6 +22,11 @@
 WITH_BF_STATICCXX = False
 BF_CXX_LIB_STATIC = '${BF_CXX}/lib/libstdc++.a'
 
+BF_LIBSAMPLERATE = '/usr/local'
+BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'
+BF_LIBSAMPLERATE_LIB = 'samplerate'
+BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
+
 WITH_BF_SDL = True
 BF_SDL = '/usr/local' #$(shell sdl-config --prefix)
 BF_SDL_INC = '${BF_SDL}/include/SDL' #$(shell $(BF_SDL)/bin/sdl-config --cflags)

Modified: branches/soundsystem/config/win32-mingw-config.py
===================================================================
--- branches/soundsystem/config/win32-mingw-config.py	2009-07-20 11:30:27 UTC (rev 21717)
+++ branches/soundsystem/config/win32-mingw-config.py	2009-07-20 12:05:18 UTC (rev 21718)
@@ -28,6 +28,11 @@
 BF_FFMPEG_LIBPATH = LIBDIR + '/gcc/ffmpeg/lib'
 BF_FFMPEG_INC =  LIBDIR + '/gcc/ffmpeg/include'
 
+BF_LIBSAMPLERATE = LIBDIR + '/SRC'
+BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'
+BF_LIBSAMPLERATE_LIB = 'samplerate'
+BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
+
 WITH_BF_SDL = True
 BF_SDL = LIBDIR + '/sdl'
 BF_SDL_INC = '${BF_SDL}/include'

Modified: branches/soundsystem/config/win32-vc-config.py
===================================================================
--- branches/soundsystem/config/win32-vc-config.py	2009-07-20 11:30:27 UTC (rev 21717)
+++ branches/soundsystem/config/win32-vc-config.py	2009-07-20 12:05:18 UTC (rev 21718)
@@ -35,6 +35,11 @@
 BF_ICONV_LIB = 'iconv'
 BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
 
+BF_LIBSAMPLERATE = LIBDIR + '/SRC'
+BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'
+BF_LIBSAMPLERATE_LIB = 'samplerate'
+BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
+
 WITH_BF_SDL = True
 BF_SDL = LIBDIR + '/sdl'
 BF_SDL_INC = '${BF_SDL}/include'

Modified: branches/soundsystem/config/win64-vc-config.py
===================================================================
--- branches/soundsystem/config/win64-vc-config.py	2009-07-20 11:30:27 UTC (rev 21717)
+++ branches/soundsystem/config/win64-vc-config.py	2009-07-20 12:05:18 UTC (rev 21718)
@@ -35,6 +35,11 @@
 BF_ICONV_LIB = 'iconv'
 BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
 
+BF_LIBSAMPLERATE = LIBDIR + '/SRC'
+BF_LIBSAMPLERATE_INC = '${BF_LIBSAMPLERATE}/include'
+BF_LIBSAMPLERATE_LIB = 'samplerate'
+BF_LIBSAMPLERATE_LIBPATH = '${BF_LIBSAMPLERATE}/lib'
+
 WITH_BF_SDL = True
 BF_SDL = LIBDIR + '/sdl'
 BF_SDL_INC = '${BF_SDL}/include'

Modified: branches/soundsystem/intern/audaspace/AUD_C-API.h
===================================================================
--- branches/soundsystem/intern/audaspace/AUD_C-API.h	2009-07-20 11:30:27 UTC (rev 21717)
+++ branches/soundsystem/intern/audaspace/AUD_C-API.h	2009-07-20 12:05:18 UTC (rev 21718)
@@ -72,16 +72,11 @@
 /**
  * Plays back a sound file.
  * \param sound The handle of the sound file.
- * \param endBehaviour The behaviour after the end of the sound file has been
- *                     reached.
- * \param seekTo From where the sound file should be played back in seconds.
- *               A negative value indicates the seconds that should be waited
- *               before playback starts.
+ * \param keep When keep is true the sound source will not be deleted but set to
+ *             paused when its end has been reached.
  * \return A handle to the played back sound.
  */
-extern AUD_Handle* AUD_play(AUD_Sound* sound,
-							AUD_EndBehaviour endBehaviour,
-							double seekTo);
+extern AUD_Handle* AUD_play(AUD_Sound* sound, int keep);
 
 /**
  * Pauses a played back sound.
@@ -107,11 +102,11 @@
 /**
  * Sets the end behaviour of a playing or paused sound.
  * \param handle The handle to the sound.
- * \param endBehaviour The behaviour after the end of the file has been reached.
+ * \param keep When keep is true the sound source will not be deleted but set to
+ *             paused when its end has been reached.
  * \return Whether the handle has been valid or not.
  */
-extern int AUD_setEndBehaviour(AUD_Handle* handle,
-								AUD_EndBehaviour endBehaviour);
+extern int AUD_setKeep(AUD_Handle* handle, int keep);
 
 /**
  * Seeks a playing or paused sound.

Modified: branches/soundsystem/intern/audaspace/CMakeLists.txt
===================================================================
--- branches/soundsystem/intern/audaspace/CMakeLists.txt	2009-07-20 11:30:27 UTC (rev 21717)
+++ branches/soundsystem/intern/audaspace/CMakeLists.txt	2009-07-20 12:05:18 UTC (rev 21718)
@@ -20,14 +20,33 @@
 #
 # ***** END LGPL LICENSE BLOCK *****
 
-SET(INC . intern SDL ffmpeg)
+SET(INC . intern FX SRC ${PTHREADS_INC} ${LIBSAMPLERATE_INC})
 
+FILE(GLOB SRC intern/*.cpp intern/*.h FX/*.cpp SRC/*.cpp)
+
 IF(WITH_FFMPEG)
-  FILE(GLOB SRC ffmpeg/*.cpp SDL/*.cpp intern/*.cpp intern/*.h)
-  INCLUDE_DIRECTORIES(${SDL_INC} ${FFMPEG_INC} ${PTHREADS_INC})
-ELSE(WITH_FFMPEG)
-  FILE(GLOB SRC SDL/*.cpp intern/*.cpp intern/*.h)

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list