Merge lp:~unity-team/unity/installation-instructions into lp:unity

Proposed by Neil J. Patel on 2010-12-02
Status: Merged
Approved by: Neil J. Patel on 2010-12-03
Approved revision: 658
Merged at revision: 660
Proposed branch: lp:~unity-team/unity/installation-instructions
Merge into: lp:unity
Diff against target: 213 lines (+185/-2)
2 files modified
INSTALL (+180/-0)
README (+5/-2)
To merge this branch: bzr merge lp:~unity-team/unity/installation-instructions
Reviewer Review Type Date Requested Status
Neil J. Patel Pending
Review via email: mp+42511@code.launchpad.net

Description of the change

Adds installation instructions taken from http://wiki.ubuntu.com/Unity/InstallationGuideFromSource

To post a comment you must log in.
658. By Neil J. Patel on 2010-12-02

fix typo

review approve

Awesome! This is really valuable.

It does raise a few questions about building a few of the components,
but this is not related to this particular merge.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'INSTALL'
2--- INSTALL 1970-01-01 00:00:00 +0000
3+++ INSTALL 2010-12-02 18:01:40 +0000
4@@ -0,0 +1,180 @@
5+ Install
6+--------------------------------------------------------------------------------
7+
8+• Notes
9+
10+ - libunity is an independant library which has a client side API for talking
11+ to Unity. However it does not depend on the main Unity codebase and the
12+ main Unity codebase does not depend on it.
13+
14+ - Unity and it's desktop environment modules are all modules of Compiz. We use
15+ a patched version of Compiz which uses the GLib main loop instead of the
16+ custom Compiz main loop. This allows us to use GNOME libraries easily inside
17+ the Unity plugins.
18+
19+ We are currently working on getting this patch upstreamed, but until then
20+ you will need to build this special version of Compiz.
21+
22+ - libunity is written in Vala and the rest of Unity in C++/C.
23+
24+ - Unity depends on a library called Nux (lp:nux) which let's us do OpenGL
25+ layouts quickly and efficiently.
26+
27+
28+• Dependencies
29+
30+ These are in Debian package name form, but it should be easy enough to
31+ translate them to other systems:
32+
33+ libglib2.0-dev libgdk-pixbuf2.0-dev libcairo2-dev libpng12-dev libglew1.5-dev
34+ libglewmx1.5-dev libxxf86vm-dev libgl1-mesa-dev libsigc++-2.0-dev
35+ libpango1.0-dev doxygen cmake pkg-config valac intltool libgee-dev
36+ libbamf-dev gsettings-desktop-schemas-dev libgconf2-dev libglib2.0-dev
37+ libdbusmenu-glib-dev libgtk2.0-dev libdee-dev libindicator-dev
38+ libboost-dev libboost-serialization-dev libmetacity-dev python-dev cython
39+
40+ However, as with any project, it's probably best to just run autogen/cmake
41+ and figure out what you need/is missing. If your distro supports grabbing
42+ all the packages needed to build a package, then at least do that for
43+ Compiz, as I'm not going to detail everything it needs here.
44+
45+ In case your distro isn't packaging all the Ayatana software, these links
46+ might come in handy:
47+
48+ https://launchpad.net/dee
49+ https://launchpad.net/bamf
50+ https://launchpad.net/libindicator
51+
52+ Also, although we don't hard depend on them, having a few indicators installed
53+ will make your experience better:
54+
55+ https://launchpad.net/indicator-appmenu
56+ https://launchpad.net/indicator-application
57+ https://launchpad.net/indicator-network
58+ https://launchpad.net/indicator-sound
59+ https://launchpad.net/indicator-messages
60+ https://launchpad.net/indicator-datetime
61+ https://launchpad.net/indicator-me
62+ https://launchpad.net/indicator-session
63+
64+• Build Compiz GLib
65+
66+ This is taken from http://wiki.ubuntu.com/Unity/InstallationGuideFromSource and
67+ was originally authored by Sam:
68+
69+ core:
70+
71+ git clone git://git.compiz.org/users/dbo/compiz-with-glib-mainloop
72+ cd compiz-with-glib-mainloop
73+ mkdir build
74+ cd build
75+ cmake .. -DCMAKE_INSTALL_PREFIX=/opt/unity
76+ make
77+ sudo make findcompiz_install
78+ sudo make install
79+
80+ exporting paths:
81+
82+ export PKG_CONFIG_PATH=/opt/unity/lib/pkgconfig:${PKG_CONFIG_PATH}
83+ export LD_LIBRARY_PATH=/opt/unity/lib:${LD_LIBRARY_PATH}
84+ export LD_RUN_PATH=/opt/unity/lib:${LD_RUN_PATH}
85+
86+ libcompizconfig:
87+
88+ git clone git://git.compiz.org/compiz/compizconfig/libcompizconfig
89+ cd libcompizconfig
90+ mkdir build
91+ cd build
92+ cmake .. -DCMAKE_INSTALL_PREFIX=/opt/unity
93+ make
94+ sudo make install
95+
96+ compizconfig-python:
97+
98+ git clone git://git.compiz.org/compiz/compizconfig/compizconfig-python
99+ cd compizconfig-python
100+ python setup.py install --prefix=/opt/unity
101+
102+ ccsm:
103+
104+ git clone git://git.compiz.org/compiz/compizconfig/ccsm
105+ cd ccsm
106+ python setup.py install --prefix=/opt/unity
107+
108+ plugins-main:
109+
110+ git clone git://git.compiz.org/compiz/plugins-main
111+ cd plugins-main
112+ git submodule init
113+ git pull origin master
114+ git submodule update
115+ mkdir build
116+ cd build
117+ cmake .. -DCMAKE_INSTALL_PREFIX=/opt/unity
118+ make
119+ sudo make install
120+
121+ plugins-extra:
122+
123+ git clone git://git.compiz.org/compiz/plugins-extra
124+ cd plugins-extra
125+ git submodule init
126+ git pull origin master
127+ git submodule update
128+ mkdir build
129+ cd build
130+ cmake .. -DCMAKE_INSTALL_PREFIX=/opt/unity
131+ make
132+ sudo make install
133+
134+
135+• Build Nux
136+
137+ bzr branch lp:nux
138+ cd nux
139+ ./autogen.sh --disable-documentation --prefix=/opt/unity
140+ make
141+ sudo make install
142+
143+
144+• Build Unity
145+
146+ bzr branch lp:unity
147+ cd unity
148+ mkdir build; cd build
149+ cmake .. -DCMAKE_BUILD_TYPE=Debug -DCOMPIZ_PLUGIN_INSTALL_TYPE=package -DCMAKE_INSTALL_PREFIX=/opt/unity
150+ make
151+ sudo make install
152+
153+• Cleanup
154+
155+ unset PKG_CONFIG_PATH
156+ unset LD_LIBRARY_PATH
157+ unset LD_RUN_PATH
158+
159+
160+• Testing
161+
162+ add this to your /home/$USER/.bashrc
163+
164+ function compiz-unity-setup-env
165+ {
166+ export PATH=/opt/unity/bin:${PATH}
167+ export PYTHONPATH=/opt/unity/lib/python2.6/site-packages
168+ }
169+
170+ Logout, login, then in a terminal do
171+
172+ $ compiz-unity-setup-env
173+ $ compiz --replace cpp &
174+ $ ccsm
175+
176+ And then use the CompizConfig Settings Window to search for and enable the Unity plugin!
177+
178+
179+• Bugs
180+
181+ If you find bugs in this installation guide or in Unity itself, please report them at
182+ https://launchpad.net/unity/+filebug
183+
184+
185
186=== modified file 'README'
187--- README 2010-11-23 11:36:14 +0000
188+++ README 2010-12-02 18:01:40 +0000
189@@ -3,12 +3,15 @@
190
191 • Installation
192
193+ Please see INSTALL or http://wiki.ubuntu.com/Unity/InstallationGuideFromSource
194+
195 • Tests
196
197 - You can run `make check` in the build directory to run all GTester tests
198 - In the build directory, ./tests/test-panel will start the panel in
199 standalone mode, which is great for testing
200
201+
202 • Environmental Variables
203
204 PANEL_USE_LOCAL_SERVICE=${anything}
205@@ -16,6 +19,6 @@
206 D-Bus activation. This is used for testing how the panel reacts when it
207 starts before the service does.
208
209+
210 • Code Style
211-
212-astyle -s2 -b -S -N -w -Y -M80 -p -H -d -j -k3 -n -z2
213+ astyle -s2 -b -S -N -w -Y -M80 -p -H -d -j -k3 -n -z2