Index of /cwrsync-vss
Cygwin Rsync 3.0.x with Volume Snapshot Service-support
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