COS 598C / HLS 598 - Reconstructing the Thera Frescoes

Spring 2007

Course home Outline and lecture notes Resources


Source Code Repository

We strongly encourage participants of the seminar to keep all project related code in our source code repository, accessible as a Subversion repository under:

  svn+ssh://opus.cs.princeton.edu/n/fs/thera/admin/repos/thera/trunk
For an initial check-out call:
  svn checkout svn+ssh://opus.cs.princeton.edu/n/fs/thera/admin/repos/thera/trunk thera
As a matter of convenience, you may want to set up public key ssh access to opus in order to avoid having to type in your password on each call of svn.

The Subversion revision control system is very similar to CVS but comes with advanced features, such as the possibility to move or rename files and directories. For those not familiar with Subversion we recommend the following documentation:

And for the impatient reader, here's are some useful commands: All svn commands operate on the current directory and its subdirectories. Please also familiarize yourself with how conflicts on commit are resolved.

Finally, there are also a couple of graphical user interfaces to Subversion. Here is a selection:

The svn command line tool for Win32 may be installed as part of Cygwin. Make sure you also install the packages OpenSSH and rsync in addition to the Subversion package.

Organization

The organizational structure of the repository should be rather self-explanatory. The repository contains three top directories:

  thera/data
  thera/doc
  thera/src
So far, all source code should go to thera/src; thera/data should only be used for smaller amounts of data or for data where revision control makes sense.

Build System / Qt

All software developed in this project is going to use the Qt library and build system; see here for documentation:

Download the latest Qt version here: For this project, we assume Qt version 4.2 or higher. The installation is straight forward on most systems. However, the Qt installation on Windows requires a patch to work with MS Visual Studio, see below.

Our goal is to support Linux, Win32, and Mac OS X platforms, that is, try to avoid compiler-specific constructs and system-dependent calls; use Qt's platform abstraction mechanisms instead. The entire source tree is compilable via:

  cd thera/src
  qmake
  make
Include your own project by adding its subdirectory to thera/src/src.pro.

Win32: On Windows, the build process differs slightly. Use qmake -spec win32-msvc.net to produce MS Visual Studio .NET 2005 project files (.vcproj) that have to be compiled using Visual Studio. In order to recursively convert all .pro in thera/src/ to .vcproj call:

  cd thera/src
  qmake -spec win32-msvc.net -r
To build an application, open the application's .vcproj file and manually add all the .vcprojs of all required libraries to the current VS solution. Don't forget to set Project dependencies within the solution. The resulting solution should compile without further modification. If you want to change compiler settings, search paths, etc., do not change the projects' property sheets, but edit the original .pro files. After converting them using qmake, Visual Studio will automatically reload the newly created .vcprojs. The VS solution can stay unaltered.

Win32 Visual .NET 2005 Installation: Do not install the MS Visual .NET Service Pack 1 Beta, as it contains a bug that causes inherited template classes with nested types to no longer work. You may, however, install the latest security fixes.

Win32 Qt Installation: In order to make Qt support MS Visual Studio .NET 2005, an inofficial patch is required. Download the patch acs-4.2.2-patch1.zip from sourceforge.net. Install Qt as follows:

Data Repository

Larger amounts of project-related data should be stored in the Thera project directory:

  /n/fs/thera/
(Or \\fs\thera from Windows or SMB/CIFS clients, respectively.) This directory is backed up but does not provide revision control. If possible, please change your umask using
  umask 0002
before you start accessing the project directory. You may include this call in your .bashrc, or whatever login script applies. This is important, as otherwise we will run into arbitrary access permission issues. Files created by you should have at least the following permissions:
  drwxrwsr-x  2 tweyrich thera  512 Feb  5 15:04 my-directory
  -rw-rw-r--  1 tweyrich thera    0 Feb  5 21:56 any-file
When accessing the project directory via Samba, the umask is likely to be set correctly -- at least for Samba mounts from Mac OS X this seems to be the case.

Users accessing the project directory have to be in the Unix group thera, which will automatically be arranged for members of the seminar.


Last update 29-Dec-2010 11:57:35
tweyrich at princeton