Home / info / 0.1
Name Modified Size InfoDownloads / Week
Parent folder
refman.pdf 2004-11-19 244.9 kB
dbfs-presentation.pdf 2004-11-19 1.3 MB
README 2004-11-19 6.8 kB
dbfs-screen.pdf 2004-11-19 851.1 kB
dbfs-paper.pdf 2004-11-19 826.8 kB
Totals: 5 Items   3.2 MB 0
          Database File System

          author: Onne Gorter

* ABOUT *

This is my Master Thesis work for the University of Twente. My thesis
is about a new file system and interface to this file system. The new
system is databased, henceforth the name dbfs: database file system.

* WHAT IS HERE *

README: this file

university: my thesis report and presentations and other stuff.
	
ocamldbfs: implementation of the base system; a server; a client; an
		   ocaml library; a c library and other libraries.

qtdbfs: implementation of GUI using only qt (incomplete)

kdelibs: all the changed files in kdelibs (version 3.2.3) to implement
		 dbfs in KDE completely. Thus replacing the file-open,
		 file-save dialogs.

kdbfs: implementation of GUI interface from KDE. Needs kdelibs. 

macdbfs: some work at an implementation of a GUI for Mac OS X 
		(Cocoa, inclomplete)

dbfsmplayer: a Mac OS X GUI for mplayer (media player) which finds
			 movies and music on its own (Cocoa).
	
Makefile: makes everything from documentation to sources, but not very
		  usefull except for myself.

The complete archive is managed by subversion version control system
(http://subversion.tigris.org) just in case some '.svn/' directories
show up. Note that this can give some trouble when using (an old
version of) Interface Builder on Mac OS X.

* INSTALL *

In order to install dbfs you need to have (installed):
    sqlite: http://www.sqlite.org/
	ocaml 3.07: http://caml.inria.fr/
	qt 3.x or better (optional): http://www.trolltech.com/
	KDE 3.2.3 (optional): http://www.kde.org/
	Mac OS X 10.3 or better (optional): http://www.apple.com/

There are two parts to my project, a server and some client
implementations. In order to work with the clients you need the server
compiled and installed, which provides a set of shared libraries the
clients need.

* compiling the server *

cd ocamldbfs
make
make install

If 'make' fails, edit 'Makefile.inc' to reflect your setup, the
makefiles assume that the dependend libraries have been installed with
a prefix of '/usr/local'. The target of the makefiles is
'$HOME'. Change all this in 'Makefile.inc' and run 'make clean' 'make'
'make install'. Edit 'Makefile' if you want to change the support
libraries that get installed.

If 'make install' fails check if you need to be superuser.

You are left with:
	/usr/local/bin/dbfsd: the server daemon
	/usr/local/bin/dbfsnotify: a client to make daemon sync with disk
	/usr/local/include/dbfs.h: client library headers
	/usr/local/lib/libdbfs.so: client library
    /usr/local/share/dbfs/dbfs.conf: a default configuration
    /usr/local/share/dbfs/mime.conf: a default mime type map 
	client/client: a very basic client written in ocaml
	c-api/example: a very basic c implemented client, check
				   'c-api/main.c' for its sources.

There are also objective-c and C++ libraries available and some
clients need these. If all goes well they are installed as appropriate
for your system otherwise install them by hand:

cd objc-api    (or cpp-api)
make
make install

this will give you:
	 /usr/local/lib/libdbfs_objc.so
	 /usr/local/include/dbfs_objc.h

Again, 'make install' probably needs superuser powers. Note that the
objective-c library needs Foundation classes from the Mac OS X or
GNUstep (OpenStep) environment, the library has only been tested for
Mac OS X.

* compiling the clients *

If you are under KDE you can compile a kde client, which is a pretty
usable client. Qt needs to be installed with STL! this is not default
for KDE with most distributions unfortunately.
 
cd kdbfs
qmake
make
./kdbfs

If under Mac OS X you can compile a media player based on MPlayer OS
X, you need the developers tools (XCode) to be installed. Also the
objective-c library needs to be installed, see above.

cd dbfsmplayer
open dbfs\ MPlayer.pbproj
and use XCode to compile and run

Most platforms can run the qt client. C++ library needs to be
installed. The Qt client is not at all up to date.

cd qtdbfs
qmake
make
./qtdbfs (or under macosx: 'open qtdbfs.app/')

* WHOLE KDE SETUP *

If you want to install a whole new KDE environment which works with
only dbfs (ie no more normal file access). This has been done on x86
linux, the following steps are needed to reproduce that: download to
the directory ~/Sources/kde/

* qt-x11-free-3.3.2.tar.bz2
* arts-1.2.3.tar.bz2
* kdelibs-3.2.3.tar.bz2
* kdebase-3.2.3.tar.bz2
* kdeartwork-3.2.3.tar.bz2
* koffice-1.3.1.tar.bz2 (optional)
* kdevelop-3.0.4.tar.bz2 (optional)

setup your environment to use our QTDIR and KDEDIR: (in .bashrc)
export QTDIR="$HOME/qt-testing"
export KDEDIR="$HOME/kde-testing"
export PATH="$QTDIR/bin:$KDEDIR/bin:$HOME/bin:$PATH"
export LD_LIBRARY_PATH="$QTDIR/lib:$KDEDIR/lib:$HOME/lib:$LD_LIBRARY_PATH"
export KDEHOME="$HOME/.kde-home-testing"

make sure your environment is correctly setup in the current shell!

tar -xjvf qt-x11-free-3.3.2.tar.bz2
cd
ln -sf Sources/kde/qt-x11-free-3.3.2 qt-testing
mkdir kde-testing
mkdir .kde-home-testing
cd Sources/kde/qt-x11-free-3.3.2
./configure -system-zlib -qt-gif -system-libpng \
-system-libjpeg -plugin-imgfmt-mng -thread \
-no-xinerama -no-g++-exceptions
(accept the license by typing 'yes' <enter>)
make
cd ..
(NO make install !!)

tar -xjvf arts-1.2.3.tar.bz2
cd arts-1.2.3
./configure --with-extra-includes=$HOME/include --with-extra-libs=$home/lib
make
make install

tar -xjvf kdelibs-3.2.3.tar.bz2
cd kdelibs-3.2.3
cp -Rf /path/to/development-tree-dbfs/kdelibs/* .
sh admin/cvs.sh cvs
./configure --with-extra-includes=$HOME/include --with-extra-libs=$HOME/lib
make
make install

Repeat the arts steps for each other package:

* kdebase-3.2.3
* kdeartwork-3.2.3 (optional)
* koffice-1.3.1 (optional)

To install the main interface:

cd /path/to/development-tree-dbfs/kdbfs
qmake
make

Done? good, now we setup some final settings:

cd
cp -Rf /path/to/development-tree-dbfs/share ~/.kde-home-testing/
mkdir Applications
mkdir Documents
mkdir Misc
mkdir Movies
mkdir Music
mkdir Pictures

cd kde-testing/share/applnk
cp <applications you like to see in dbfs> ~/Applications
cd ../applications/kde/
cp <applications you like to see in dbfs> ~/Applications

finally setup done ...

To run KDE use startkde or place startkde in .xinitrc (exec startkde)
or in .Xclients for redhat users. But first start the dbfs daemon
following the next section.

* RUNNING AND USING *

You need to create a directory '~/.dbfs/' and copy
'/usr/local/share/dbfs/*' to this directory. Edit '~/.dbfs/dbfs.conf'. (This 
could be in ~/share/dbfs/)

To run a client first run the server then the client, run the server
with 'dbfsd'. Use 'dbfsd --help' to read about its options. Note that
the server is personal, and not run as superuser. With the current
implementation you cannot run a server for multiple users (but each
one can run its own private version).
Source: README, updated 2004-11-19