This is an attempt to get VSS-support working for Cywgin Rsync 3.0.x. I'm using a large part of the patch from Elias Penttilä. Hope it's helpful to some folks, Leen Besselink pre-build binaries for 32-bit Windows (looks like it does NOT work on 64-bit Windows): - cygwin1.dll Windows 2003 (and possible Windows 2003 R2, Vista and Windows 2008 - didn't test that yet): - rsync.exe Windows XP: - rsync-xp.exe Usage/configuration: All that works right now is running it as a daemon and having an rsync-client make a backup. You can't turn VSS-support off yet. When creating the rsyncd.conf file you should specify your path as: /cygdrive/c Other limitations: - it migth take longer to connect the first time in comparison to plain rsync on Cygwin because the VSS-service might need to be started - seperate binaries are needed for Windows 2003 and higher vs Windows XP. - will not work on Windows 2000 (it doesn't have VSS) - in it's current form, it will probably never be part of the normal rsync distribution as it's add C++ to the C code and depends on bunch of Microsoft inclucdes/binaries to build - when building from source, Makefile needs to be seperately patched, because I've not figured out how to change configure.sh and/or Makefile.in. Possible limitation: - I have no idea how acl, hard-, soft-links or attributes are handled Currently my TODO list for this project looks like this: - be able to use it as a client and add a commandline parameter to enable it - make vss configurable for the server per module (if you also upload to the server, you probably can't do that with vss enabled) - make server 'modules' with vss automatically read only ? - make patching the source easier (I'm now patching Makefile instead of Makefile.in or configure.sh) - and hope to get it included in some kind of distribution, like the cwrsync installer - wait for bugreports / go into maintenance-mode ? Reporting bugs/issues any other development discussion is now handled here for the moment: http://www.itefix.no/i2/node/11984 Build-environment: - Windows XP SP2 (doesn't really matter all that much, I guess) - Cygwin (don't think it matters much which version, as long as it is recent and a stable version, not a development version) ( download here ) - when installing cygwin you need atleast: - devel/autoconf - devel/automake - devel/gcc (that 3.x, not gcc4) - devel/patchutils - devel/make - from Volume Shadow Copy Service SDK 7.2 ( download here ) which installs itself in: C:\Program Files\Microsoft\VSSSDK72 it uses: - C:\Program Files\Microsoft\VSSSDK72\inc\win2003\vsbackup.h -> rsync-3.0.6/vss/inc/vss.h - C:\Program Files\Microsoft\VSSSDK72\inc\win2003\vss.h -> -> rsync-3.0.6/vss/inc/vss.h - C:\Program Files\Microsoft\VSSSDK72\inc\win2003\vswriter.h -> -> rsync-3.0.6/vss/inc/vswriter.h - C:\Program Files\Microsoft\VSSSDK72\lib\win2003\obj\i386\vssapi.lib -> rsync-3.0.6/vss/lib/vssapi.lib - C:\Program Files\Microsoft\VSSSDK72\lib\win2003\obj\i386\vss_uuid.lib -> rsync-3.0.6/vss/lib/vss_uuid.lib or lib\winxp and inc\winxp for Windows XP-build (for obj their are other versions lib files (like 64-bit), but I've not tried other versions) - from MSXML4 SP2 + SDK you will need the msxml.msi ( download here ) which installs itself in: C:\Program Files\MSXML 4.0, it uses: - C:\Program Files\MSXML 4.0\inc\msxml2.h -> rsync-3.0.6/vss/inc_xml/msxml2.h - rsync-3.0.6.tgz ( I used the one from rsync.samba.org ) stuff from me and Elias Penttilä: - c-plus-plus-template.patch to rename template to templ, so gcc doesn't confuse it with a c++-template - VSS-patch to add code to call Windows VSS - vss.tgz to add wrapper code around Microsoft include and library files to build directory. - Makefile.patch to change Makefile, because I've not yet figured out to change configure.sh or Makefile.in so the right Makefile is generated. Commands to build: tar -zxvf rsync-3.0.6.tgz cd rsync-3.0.6 patch -p1 < ../c-plus-plus-template.patch patch -p1 < ../vss.patch tar -zxvf ../vss.tgz cd vss ln -s /cygdrive/c/Program\ Files/Microsoft/VSSSDK72/inc/win2003 inc ln -s /cygdrive/c/Program\ Files/Microsoft/VSSSDK72/lib/win2003/obj/i386 lib ln -s /cygdrive/c/Program\ Files/MSXML\ 4.0/inc inc_xml cd .. LIBS="-lole32 -luuid vss/lib/vssapi.lib vss/lib/vss_uuid.lib" ./configure patch -p1 < ../Makefile.patch make && strip rsync.exe