Name | Modified | Size | Downloads / 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).