Index of /cwrsync-vss

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory  -  
[   ]cygwin1.dll2009-06-01 16:55 1.8M 
[   ]rsync.exe2009-06-01 16:52 340K 
[   ]rsync-xp.exe2009-06-06 07:29 340K 
[TXT]README.html2009-11-27 18:31 5.7K 
[TXT]vss.patch2009-06-01 16:25 3.5K 
[TXT]c-plus-plus-template.patch2009-06-01 16:25 1.6K 
[   ]vss.tgz2009-06-07 23:56 1.4K 
[TXT]Makefile.patch2009-06-01 18:07 1.3K 
[DIR]versions/2009-06-29 09:16 -  

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