Sugar on Gentoo Linux: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
|||
(38 intermediate revisions by 15 users not shown) | |||
Line 1: | Line 1: | ||
{{jhbuild-nav}} |
|||
==Introduction== |
|||
== Page moved == |
|||
There are two major approaches available to building Sugar on Gentoo Linux. In the first, you use Gentoo's Portage build system to update your Gentoo system to a state which is comparable to the environment on an OLPC laptop. Note that this involves upgrading past the point which Gentoo recommends as a stable configuration for a number of packages. |
|||
'''This page has been [http://wiki.sugarlabs.org/go/Community/Distributions/Gentoo moved] to the Sugar Labs wiki.''' |
|||
The second approach, which is not explored in detail here, is closer to that which is done for other Linux operating systems, namely using: |
|||
sugar-jhbuild build-base |
|||
to construct a parallel development environment which is used solely for the Sugar system. This builds approximately 180 packages before you begin the Sugar-specific build process. |
|||
==Installation== |
|||
[[Sugar]] can be built on an up-to-date Gentoo system by updating a number of the Gentoo system's libraries. These instructions are being updated on 2007-02-28 to reflect current build practice as successfully completed by the PyCon sprint. Test machine was an up-to-date x86 laptop with minimal ~x86 features added to support the Sugar environment. |
|||
==Prerequisites== |
|||
You will need to emerge rather a lot of software, with many of the packages being ~x86 or hard-masked. For any package which is hard-masked, you will have to add the package to your /etc/portage/package.unmask file (which you may need to create). |
|||
Please keep in mind that unmasking hard-masked files is strongly discouraged by Gentoo, and the project will generally *not* provide support for problems encountered with the software (i.e. ask on the Sugar lists before you ask on the Gentoo lists for hard-masked packages). |
|||
To unmask a hard-masked package, add a line such as the following to your /etc/portage/package.unmask file: |
|||
=net-misc/networkmanager-0.6.4_pre20061028-r1 |
|||
=dev-libs/libnl-1.0_pre6 |
|||
=net-misc/dhcdbd-1.14-r1 |
|||
=dev-lang/python-2.5-r1 |
|||
To unmask an ~x86-masked package, add a line such as the following to your /etc/portage/package.keywords file: |
|||
dev-lang/python ~x86 |
|||
dev-python/setuptools ~x86 |
|||
net-libs/xulrunner ~x86 |
|||
net-misc/networkmanager ~x86 |
|||
dev-libs/libnl ~x86 |
|||
net-misc/dhcdbd ~x86 |
|||
dev-python/dbus-python ~x86 |
|||
Note that you can use the full format (including comparison operator and version) as specified in the package.unmask file above as well. |
|||
You will also likely need to specify USE flags for a number of packages. These are added to the /etc/portage/package.use file in a format like so: |
|||
dev-util/subversion -apache2 |
|||
net-dns/avahi dbus python |
|||
dev-python/gnome-python-extras firefox |
|||
x11-base/xorg-server kdrive |
|||
=== Python 2.5 is Required === |
|||
You will need to upgrade your Gentoo installation to Python 2.5, then upgrade all of the packages dependent on Python (normally Python modules): |
|||
emerge -avDt >=dev-lang/python2.5 |
|||
python-updater |
|||
Note that Python is a core component of Gentoo's portage package management system. As such it is potentially possible that you could damage your system by using an unsupported Python version. Probably not a huge risk, but be careful! |
|||
=== Emerge the prerequisites === |
|||
Sugar requires a large number of standard Gentoo packages, you will need to emerge all of them in order to build the package: |
|||
emerge -avDt \ |
|||
dev-util/git\ |
|||
cvs subversion\ |
|||
docbook-sgml-utils\ |
|||
gtk-doc\ |
|||
avahi\ |
|||
expat\ |
|||
gstreamer\ |
|||
xulrunner\ |
|||
pycurl\ |
|||
networkmanager\ |
|||
gnome-python-desktop\ |
|||
gnome-python-extras\ |
|||
>=dev-python/dbus-python-0.80.1\ |
|||
darcs |
|||
You will also likely need to rebuild the x11-base/xorg-server package to build the "nested X servers" module, (particularly the "Xephyr" server which Sugar uses) this is done by specifying "kdrive" USE flag then rebuilding the server: |
|||
emerge -avDt --newuse xorg-server |
|||
You may also need the "dm-crypt" module compiled into your kernel. To check for the presence of the module (one of the dependencies claims it is required in a default Gentoo build): |
|||
modprobe dm-crypt |
|||
if this fails, enable the option in your kernel and rebuild the kernel with genkernel (or whatever you prefer for your kernel building pleasure): |
|||
Device Drivers |
|||
Multi-Device Support |
|||
Device mapper support |
|||
[*] Crypt Target Support |
|||
(Note that orospakr says that the dm-crypt module is not actually required). |
|||
=== Getting and building jhbuild === |
|||
jhbuild is a script that allows for building source-code from various source-code repositories and/or source tarballs (basically a poor-man's version of emerge for developers). You will need to check it out of it's svn repository and do a standard GNU-style installation: |
|||
svn co http://svn.gnome.org/svn/jhbuild/trunk jhbuild |
|||
cd jhbuild |
|||
make |
|||
make install |
|||
You do *not* need to run jhbuild directly. sugar-jhbuild just requires the package to be installed in order to function. |
|||
More detailed instructions [[http://www.gnome.org/~jamesh/jhbuild.html#getting-started are available]]. |
|||
== Sugar-jhbuild == |
|||
Use of Sugar-jhbuild is detailed on [[Sugar#Build_from_sources|building Sugar from sources]]. To summarize those instructions, in order to build the absolute latest version of Sugar: |
|||
git-clone git://dev.laptop.org/sugar-jhbuild |
|||
cd sugar-jhbuild |
|||
./sugar-jhbuild build |
|||
Note, however, that building the very latest version of Sugar is not likely what you want to do '''unless''' you want to help in developing '''Sugar itself'''. We are fixing a few bugs to allow for building a non-bleeding-edge version of the project. |
|||
If you had already checked out sugar-jhbuild previously, make sure your copy is up-to-date before building: |
|||
cd sugar-jhbuild |
|||
git-pull |
|||
The sanity checks are still very basic but, often, good information can be gotten from: |
|||
./sugar-jhbuild sanitycheck |
|||
=== Testing sugar === |
|||
When using [[Sugar_with_sugar-jhbuild|sugar-jhbuild]], you can use: |
|||
./sugar-jhbuild run |
|||
If you want to run Sugar from the source tree enter in a jhbuild shell: |
|||
./sugar-jhbuild shell |
|||
Then from the directory sugar-jhbuild/source/sugar), use: |
|||
shell/sugar |
|||
[[Category:Installing Sugar]] |
[[Category:Installing Sugar]] |
||
[[Category:Python]] |
Latest revision as of 18:57, 25 September 2010
Developer's Setup |
Fedora |
Ubuntu |
Debian |
Gentoo |
Slackware |
Wiki Category |
modify |
Page moved
This page has been moved to the Sugar Labs wiki.