[Box Backup] Win32 port (was: BoxBackup Server Side Management Specs (Draft0.01))

Chris Wilson boxbackup@fluffy.co.uk
Thu, 30 Sep 2004 20:13:16 +0100 (BST)


Hi Ben,

> > I second the call for duplicate file detection :-)
> 
> Unfortunately there's only one of me.

Sorry, I'd be happy to help out when I've made some progress on the GUI 
and Windows port and I've got a bit more time.

> Before you start changing code, it will be much easier if you work on a 
> checkout of my CVS repository. The released code is run through a 
> script which does various modifications like adding the license at the 
> top of each file, so patches from released code are not as easy to 
> integrate as they might be.

So far I have not needed to change any code, and I hope that I can 
maintain the Windows GUI semi-independently, only relying on some header 
files from Box. However, there does seem to be a fair amount of 
auto-generated and platform-dependent stuff that might require work on the 
build system to integrate properly. I will tackle that when I have 
something worth integrating :-)

> I also have some extended notes on porting to Win32, if anyone wants a 
> copy. (I have already sent one to Chris.)

Those notes are so useful that perhaps they should be in the notes 
directory?

> > No server version (use Linux dammit :-)
> 
> Surely you mean OpenBSD?

Sorry, I should have said *nix (or !win32 :-)

> Seriously, a Win32 server is unlikely as it depends on the behaviour of 
> the UNIX filesystem. On Windows you can't delete or move another file 
> over a file which is currently open.

Well, I suspect I'll have to dive into device drivers to make open file 
support work, so maybe I can fix this at the same time, or make it easier 
for the next person. Personally I have no desire to run a server on 
Windows.

> Dump the registry to a file and back that up?

If properly integrated into the client itself, seems like a great way to 
go. I want to be really sure that it's written correctly, or that I get 
notification if it's not.

> > * support for drive letters
> 
> I would have thought that the existing mechanism of backup locations 
> will handle this reasonably well.

What mechanism is that? There seems to be an implicitly assumed special 
object at the root of the filesystem with the name "/" (unless I 
misunderstand). That doesn't seem to map very nicely to Windows drive 
letters, especially when it comes to removable devices. Perhaps I could 
have a virtual root directory with "/c:/", "/d:/", etc. underneath it.

> This requires multiple streams to be implemented, which currently 
> there's no neat way of doing. Now that WinXP SP2 uses multiple streams 
> to store file security information, it's probably required for Win32 as 
> well. And I might as well support sparse files while I'm at it.

I don't plan to back up security information directly as a binary stream,
because I suspect that it would be useless if restored onto a different 
machine or installation. Perhaps I could use such a stream for a textual, 
machine-independent representation of all the security information 
associated with a file, and it might be the best way to support that kind 
of detailed security data. Do you have concrete plans to implement this at 
some point?

> A few other people have a bit of a start on this. I will try and put 
> everyone in touch with each other.

Please do, I would be very interested to hear from anyone else who is
working on Win32 support or a GUI, especially if they wish to collaborate, 
but at least to avoid duplication of effort.

Cheers, Chris.
-- 
_ ___ __     _
 / __/ / ,__(_)_  | Chris Wilson <0000 at qwirx.com> - Cambs UK |
/ (_/ ,\/ _/ /_ \ | Security/C/C++/Java/Perl/SQL/HTML Developer |
\ _/_/_/_//_/___/ | We are GNU-free your mind-and your software |