gui: Enable console line edit on setClientModel
[novacoin.git] / doc / readme-qt.rst
1 Novacoin-qt: Qt4 GUI for Novacoin
2 ===============================
3
4 Build instructions
5 ===================
6
7 Debian
8 -------
9
10 First, make sure that the required packages for Qt4 development of your
11 distribution are installed, these are
12
13 ::
14
15 for Debian and Ubuntu  <= 11.10 :
16
17 ::
18
19     sudo apt-get install qt4-qmake libqt4-dev build-essential libboost-dev libboost-system-dev \
20         libboost-filesystem-dev libboost-program-options-dev libboost-thread-dev \
21         libssl-dev libdb4.8++-dev
22
23 for Ubuntu >= 12.04 (please read the 'Berkely DB version warning' below):
24
25 ::
26
27     sudo apt-get install qt4-qmake libqt4-dev build-essential libboost-dev libboost-system-dev \
28         libboost-filesystem-dev libboost-program-options-dev libboost-thread-dev \
29         libssl-dev libdb++-dev
30                 
31 install Git:
32
33 ::
34
35     sudo apt-get install git
36
37 clone the repository :
38
39 ::
40
41     git clone https://github.com/novacoin-project/novacoin
42    
43
44 Execute the following:
45
46 ::
47
48     cd novacoin
49     qmake USE_O3=1 USE_ASM=1 RELEASE=1
50     make
51
52 Alternatively, install Qt Creator and open the `novacoin-qt.pro` file.
53
54 An executable named `novacoin-qt` will be built.
55
56 To build novacoind execute the following:
57
58 ::
59
60     cd src
61     make -f makefile.unix USE_O3=1 USE_ASM=1 STATIC=1
62     strip novacoind
63
64
65 Windows
66 --------
67
68 Windows build instructions:
69
70 - Download the `QT Windows SDK`_ and install it. You don't need the Symbian stuff, just the desktop Qt.
71
72 - Download and extract the `dependencies archive`_  [#]_, or compile openssl, boost and dbcxx yourself.
73
74 - Copy the contents of the folder "deps" to "X:\\QtSDK\\mingw", replace X:\\ with the location where you installed the Qt SDK. Make sure that the contents of "deps\\include" end up in the current "include" directory.
75
76 - Open the .pro file in QT creator and build as normal (ctrl-B)
77
78 .. _`QT Windows SDK`: http://qt.nokia.com/downloads/sdk-windows-cpp
79 .. _`dependencies archive`: https://download.visucore.com/bitcoin/qtgui_deps_1.zip
80 .. [#] PGP signature: https://download.visucore.com/bitcoin/qtgui_deps_1.zip.sig (signed with RSA key ID `610945D0`_)
81 .. _`610945D0`: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x610945D0
82
83
84 Mac OS X
85 --------
86
87 - Download and install the `Qt Mac OS X SDK`_. It is recommended to also install Apple's Xcode with UNIX tools.
88
89 - Download and install `MacPorts`_.
90
91 - Execute the following commands in a terminal to get the dependencies:
92
93 ::
94
95         sudo port selfupdate
96         sudo port install boost db48
97
98 - Open the .pro file in Qt Creator and build as normal (cmd-B)
99
100 .. _`Qt Mac OS X SDK`: http://qt.nokia.com/downloads/sdk-mac-os-cpp
101 .. _`MacPorts`: http://www.macports.org/install.php
102
103
104 Build configuration options
105 ============================
106
107 LevelDB transaction index
108 --------------------------
109
110 To use LevelDB for transaction index, pass the following argument to qmake:
111
112 ::
113
114     qmake "USE_LEVELDB=1"
115
116 No additional external dependencies are required. If you're running this on your current sources tree then don't forget to run
117
118 ::
119
120     make distclean
121
122 prior to running qmake.
123
124 Assembler implementation of scrypt hashing
125 ------------------------------------------
126
127 To use optimized scrypt implementation instead of generic scrypt module, pass the following argument to qmake:
128
129 ::
130
131     qmake "USE_ASM=1"
132
133
134 If you're using clang compiler then you need to unroll macroses before compiling. Following commands will do this for you:
135
136 ::
137
138     cd src/
139     ../contrib/clang/nomacro.pl
140
141 No additional external dependencies required. Note that only x86, x86_64 and ARM processors are supported.
142
143 Notification support for recent (k)ubuntu versions
144 ---------------------------------------------------
145
146 To see desktop notifications on (k)ubuntu versions starting from 10.04, enable usage of the
147 FreeDesktop notification interface through DBUS using the following qmake option:
148
149 ::
150
151     qmake "USE_DBUS=1"
152
153 Generation of QR codes
154 -----------------------
155
156 libqrencode is used to generate QRCode images for payment requests.
157 It can be downloaded from http://fukuchi.org/works/qrencode/index.html.en, or installed via your package manager.
158
159 Berkely DB version warning
160 ==========================
161
162 A warning for people using the *static binary* version of Novacoin on a Linux/UNIX-ish system (tl;dr: **Berkely DB databases are not forward compatible**).
163
164 The static binary version of Novacoin is linked against libdb5.3.
165
166 If the globally installed development package of Berkely DB installed on your system is 5.X, for example, any source you
167 build yourself will be linked against that. The first time you run with a 5.X version the database will be upgraded,
168 and 4.X cannot open the new format. This means that you cannot go back to the old statically linked version without
169 significant hassle!
170
171 Ubuntu 11.10 warning
172 ====================
173
174 Ubuntu 11.10 has a package called 'qt-at-spi' installed by default.  At the time of writing, having that package
175 installed causes novacoin-qt to crash intermittently.  The issue has been reported as `launchpad bug 857790`_, but
176 isn't yet fixed.
177
178 Until the bug is fixed, you can remove the qt-at-spi package to work around the problem, though this will presumably
179 disable screen reader functionality for Qt apps:
180
181 ::
182
183     sudo apt-get remove qt-at-spi
184
185 .. _`launchpad bug 857790`: https://bugs.launchpad.net/ubuntu/+source/qt-at-spi/+bug/857790