Updating submodules
3 files changed
tree: bb09ad9c19cbf05ea41c74f56f4b199b26a0a991
  1. images/
  2. .gitignore
  3. .gitmodules
  4. chatbuf.proto
  5. chatdialog.cpp
  6. chatdialog.h
  7. chatdialog.ui
  8. demo.icns
  9. demo.qrc
  10. digesttreescene.cpp
  11. digesttreescene.h
  12. log4cxx.properties
  13. main.cpp
  14. osxdist.py
  15. qt.conf
  16. README.md
  17. settingdialog.cpp
  18. settingdialog.h
  19. settingdialog.ui
  20. treelayout.cpp
  21. treelayout.h
  22. waf
  23. wscript
README.md

ChronoChat

ChronoChat is a multiparty chat application that demostrates our synchronization primitive that we call ChronoSync.

Note that after you click to close ChronoChat, it will keep running on your system tray. To restore it to normal size window, you have to click on the system tray icon (normally on the upper right corner of your screen). Clicking on the dock won't work for now and is still on the to-do list (because I'm using qt for gui, not the native Cocoa framework).

Known Issues


  1. When you switch to a new room, you'll temporarily see yourself in two nodes for a minute or so. It won't affect others, just yourself. Hopefully it's not so disturbing.
  2. Sometimes you may not get the most up-to-date chat history.

For those who wants (or is forced to) compile from source code


Compilation steps for OSX

  1. Install MacPorts, if not yet installed (http://www.macports.org/) and configure NDN ports repository (https://github.com/named-data/ccnx/wiki/Using-ccnx-with-macports). If your Macports are installed in /opt/local, add the following line at the end of /opt/local/etc/macports/sources.conf before the default port repository:

     rsync://macports.named-data.net/macports/
    
  2. Update port definitions and install (+load) required packages

     $ sudo port selfupdate
    
     # Install and CCNx
     sudo port install ccnx
     sudo port load ccnx
    
     # Install ChronoChat dependencies
     sudo port install pkgconfig protobuf-cpp boost qt4-mac
    
  3. Fetch source code with submodules

      git clone --recursive git://github.com/named-data/ChronoChat
    

If you already cloned repository, you can update submodules this way:

git submodule update --init
  1. Configure and install libsync

     cd ChronoChat/sync
    

    ./waf configure ./waf sudo ./waf install

  2. Configure and build ChronoChat

     cd ..
     PKG_CONFIG_PATH=/opt/local/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig ./waf configure
     ./waf
    

Congratulations! build/ChronoChat.app is ready to use (on a Mac).

Compilation steps for Ubuntu 12.04

  1. Install dependencies

     # General dependencies (build tools and dependencies for CCNx)
     sudo apt-get install git libpcap-dev libxml2-dev make libssl-dev libexpat-dev g++ pkg-config
    
     # ChronoSync/ChronoChat dependencies
     sudo apt-get install libprotobuf-dev protobuf-compiler libevent-dev
     sudo apt-get install libboost1.48-all-dev
     sudo apt-get install qt4-dev-tools
    

NOTE Only 1.48 version of boost libraries should be installed from packages. Since Ubuntu 12.04 ships with two versions, please make sure that 1.46 is not present, otherwise result is not guaranteed.

  1. Download and install NDN fork of CCNx software

     git clone git://github.com/named-data/ccnx
     cd ccnx
     ./configure
     make
     sudo make install
    
  2. Fetch source code with submodules

      git clone --recursive git://github.com/named-data/ChronoChat
    

If you already cloned repository, you can update submodules this way:

git submodule update --init
  1. Configure and install libsync

     cd ChronoChat/sync
    

    ./waf configure ./waf sudo ./waf install sudo ldconfig

  2. Configure and build ChronoChat

     cd ..
     ./waf configure
     ./waf
    

Congratulations! build/ChronoChat is ready to use. Do not forget to start ccnd and configure FIB before using ChronoChat.