blob: 7d28d23f60850f9560b9b2403a5c21d9b21d43fd [file] [log] [blame] [view]
Alexander Afanasyevb4b92292013-07-09 13:54:59 -07001ChronoChat
2==========
3
4ChronoChat is a multiparty chat application that demostrates our synchronization primitive that we call ChronoSync.
5
6Note 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).
7
8## Known Issues
9---------------
10
111. 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.
122. Sometimes you may not get the most up-to-date chat history.
13
14## For those who wants (or is forced to) compile from source code
15-----------------------------------------------------------------
16
Alexander Afanasyeveb7ee6b2013-07-13 16:20:09 -070017### Compilation steps for OSX
Alexander Afanasyevb4b92292013-07-09 13:54:59 -070018
Alexander Afanasyev49abb912014-05-09 15:23:48 -0700191. Install MacPorts, if not yet installed (http://www.macports.org/), configure [NDN ports repository](http://named-data.net/doc/NFD/current/FAQ.html#how-to-start-using-ndn-macports-repository-on-osx) and install NFD if you don't have it yet.
Alexander Afanasyevb4b92292013-07-09 13:54:59 -070020
Alexander Afanasyev49abb912014-05-09 15:23:48 -070021 sudo port install nfd
22 sudo nfd-start
Alexander Afanasyevb4b92292013-07-09 13:54:59 -070023
Alexander Afanasyev49abb912014-05-09 15:23:48 -0700242. Install ChronoChat dependencies
Alexander Afanasyevb4b92292013-07-09 13:54:59 -070025
Alexander Afanasyeveb7ee6b2013-07-13 16:20:09 -070026 sudo port install pkgconfig protobuf-cpp boost qt4-mac
Alexander Afanasyevb4b92292013-07-09 13:54:59 -070027
Alexander Afanasyeveb7ee6b2013-07-13 16:20:09 -0700283. Fetch source code with submodules
Alexander Afanasyevb4b92292013-07-09 13:54:59 -070029
Alexander Afanasyevdf7e5692013-07-15 12:43:12 -070030 git clone --recursive git://github.com/named-data/ChronoChat
Alexander Afanasyevb4b92292013-07-09 13:54:59 -070031
Alexander Afanasyeveb7ee6b2013-07-13 16:20:09 -070032If you already cloned repository, you can update submodules this way:
33
Alexander Afanasyevdf7e5692013-07-15 12:43:12 -070034 git submodule update --init
Alexander Afanasyeveb7ee6b2013-07-13 16:20:09 -070035
Alexander Afanasyevdf7e5692013-07-15 12:43:12 -0700364. Configure and install ChronoSync
Alexander Afanasyeveb7ee6b2013-07-13 16:20:09 -070037
Alexander Afanasyevdf7e5692013-07-15 12:43:12 -070038 cd ChronoChat/ChronoSync
39 ./waf configure
40 ./waf
41 sudo ./waf install
42
Alexander Afanasyeveb7ee6b2013-07-13 16:20:09 -0700435. Configure and build ChronoChat
44
45 cd ..
46 PKG_CONFIG_PATH=/opt/local/lib/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig ./waf configure
47 ./waf
Alexander Afanasyevb4b92292013-07-09 13:54:59 -070048
49Congratulations! build/ChronoChat.app is ready to use (on a Mac).
50
Alexander Afanasyev49abb912014-05-09 15:23:48 -070051### Compilation steps for Ubuntu 12.04, 13.10, 14.04
Alexander Afanasyeveb7ee6b2013-07-13 16:20:09 -070052
Alexander Afanasyev49abb912014-05-09 15:23:48 -0700531. Configure [NDN PPA repository](http://named-data.net/doc/NFD/current/FAQ.html#how-to-start-using-ndn-ppa-repository-on-ubuntu-linux) and install NFD if you don't have it yet.
Alexander Afanasyeveb7ee6b2013-07-13 16:20:09 -070054
Alexander Afanasyev49abb912014-05-09 15:23:48 -070055 sudo apt-get install nfd
Alexander Afanasyeveb7ee6b2013-07-13 16:20:09 -070056
Alexander Afanasyev49abb912014-05-09 15:23:48 -0700572. Install ChronoChat dependencies
58
Alexander Afanasyeveb7ee6b2013-07-13 16:20:09 -070059 sudo apt-get install libprotobuf-dev protobuf-compiler libevent-dev
60 sudo apt-get install libboost1.48-all-dev
61 sudo apt-get install qt4-dev-tools
62
Alexander Afanasyeveb7ee6b2013-07-13 16:20:09 -0700633. Fetch source code with submodules
64
Alexander Afanasyevdf7e5692013-07-15 12:43:12 -070065 git clone --recursive git://github.com/named-data/ChronoChat
Alexander Afanasyeveb7ee6b2013-07-13 16:20:09 -070066
67If you already cloned repository, you can update submodules this way:
68
Alexander Afanasyevdf7e5692013-07-15 12:43:12 -070069 git submodule update --init
Alexander Afanasyeveb7ee6b2013-07-13 16:20:09 -070070
Alexander Afanasyevdf7e5692013-07-15 12:43:12 -0700714. Configure and install ChronoSync
Alexander Afanasyeveb7ee6b2013-07-13 16:20:09 -070072
Alexander Afanasyevdf7e5692013-07-15 12:43:12 -070073 cd ChronoChat/ChronoSync
74 ./waf configure
75 ./waf
76 sudo ./waf install
Alexander Afanasyeveb7ee6b2013-07-13 16:20:09 -070077 sudo ldconfig
78
795. Configure and build ChronoChat
80
81 cd ..
82 ./waf configure
83 ./waf
84
85Congratulations! build/ChronoChat is ready to use. Do not forget to start ccnd and configure FIB before using ChronoChat.