Building garnome-2.10.0.1 on a PPC running YDL-4.0.1 [Long]
- From: "Joseph E. Sacco, Ph.D." <joseph_sacco comcast net>
- To: Yellow Dog Linux General Discussion List <yellowdog-general lists terrasoftsolutions com>
- Cc: garnome-list <garnome-list gnome org>
- Subject: Building garnome-2.10.0.1 on a PPC running YDL-4.0.1 [Long]
- Date: Mon, 21 Mar 2005 12:35:31 -0500
(1) Go fetch the software
http://cipherfunk.org/garnome/
(2) Unpack the software and *study* the README.
(3) Modify gar.conf.mk decide where you would like the compiled software
installed.
I chose /opt and set
main_prefix ?= /opt/garnome
* decide if you would like to use ccache.
If so, uncomment the two lines for ccache support [see line 176].
(4) Build the required bootstrap packages in ./bootstrap
* ccache [if you decided to use it.]
* dbus & hal
(5) Build the desktop
cd desktop
make paranoid-install
(6) Set up for a test run
* create a separate user account to experiment with your new desktop.
* create a .xinitrc file for this new user per the README.
* log in as the new user.
(7) Assess
Try it out. See what you like, see what you don't like. Share your
opinions with the GNOME folks.
(8) Next steps
Try building the applications in the other directories. "Most
everything" builds with the exception of mono.
=================================================================
Discussion
Preface
---------
GARNOME is a wonder. It fetches and builds in the proper order whatever
is needed to run GNOME. GARNOME uses GAR, a GNUmake based framework
written by Nick Moffett,
http://www.lnx-bbc.org/garchitecture.html
The bootstrap step preps your GARNOME environment, adding required
non-GNOME packages [see the README].
The "make paranoid-install" process fetches and builds everything with
the proviso that it will stop on the first error encountered. This is a
good thing.
bootstrap issues
----------------
As of version 2.8.x, GNOME requires both DBUS and HAL:
http://www.freedesktop.org/wiki/Software_2fdbus
http://www.freedesktop.org/Software/hal
YDL-4 comes with a working version of dbus-0.22 which is sufficient to
build a working hal-0.4.7. As a prudent measure I would recommend
building separate versions of dbus & hal and installing them in your
GARNOME tree. Once you are comfortable with HAL, you may wish to
reinstall HAL under /usr.
The bootstrap directory contains a version of firefox-1.0.1. Firefox is
used by epiphany and some of the mono applications. If you do not wish
to have GARNOME automatically build firefox, edit the epiphany Makefile
so epiphany will build using mozilla:
* comment out the second LIBDEPS line
* modify CONFIGURE_ARGS line: --with-mozilla=mozilla
NOTE:
The version of firefox-1.0.1 currently available from YDL/extras is
missing its package configuration files. As a consequence, the second
LIBDEPS line in the epiphany Makefile will *not* find a YDL installed
version of firefox and will automatically build ./bootstrap/firefox.
desktop issues
--------------
* There is a linker issue with the build of libwnck that will come back
and bite you later. Before building the desktop, edit
./desktop/libwnck/Makefile
--- Makefile- 2005-03-21 10:51:47.567627524 -0500
+++ Makefile 2005-03-21 10:57:26.706514932 -0500
@@ -10,6 +10,7 @@
#FIXME: blurb goes here
endef
+LDFLAGS = "-Wl,--export-dynamic"
CONFIGURE_SCRIPTS = $(WORKSRC)/configure
BUILD_SCRIPTS = $(WORKSRC)/Makefile
INSTALL_SCRIPTS = $(WORKSRC)/Makefile
So what does this linker flag do?
[from "info ld"]
`--export-dynamic'
When creating a dynamically linked executable, add all symbols to
the dynamic symbol table. The dynamic symbol table is the set of
symbols which are visible from dynamic objects at run time.
If you do not use this option, the dynamic symbol table will
normally contain only those symbols which are referenced by some[?]
If you use `dlopen' to load a dynamic object which needs to refer
back to the symbols defined by the program, rather than some other
dynamic object, then you will probably need to use this option when
linking the program itself.
You can also use the version script to control what symbols should
be added to the dynamic symbol table if the output format supports
it. See the description of `--version-script' in *Note VERSION::.
The "issue" arises from an attempt to make some GNOME applications
smaller. "-Wl,--export-dynamic" used to be the default for building the
glib, atk, pango, and gdk-pixbuf shared libraries. See
/opt/garnome/lib/pkgconfig/gmodule-no-export-2.0.pc
* librsvg is missing a dependency.
Edit the Makefile[ignore any line wrap]:
--- Makefile- 2005-03-18 13:53:35.000000000 -0500
+++ Makefile 2005-03-18 13:53:51.000000000 -0500
@@ -4,7 +4,7 @@
DISTFILES = $(GARNAME)-$(GARVERSION).tar.bz2
PATCHFILES = gar-base.diff
-LIBDEPS = platform/gtk+ platform/libart_lgpl desktop/libcroco office/libgsf
+LIBDEPS = platform/gtk+ platform/libart_lgpl platform/libgnomeprint desktop/libcroco office/libgsf
DESCRIPTION = librsvg
define BLURB
office issues
-------------
There is a newer version of "planner", 0.13. To build the new version:
* edit the Makefile
GARVERSION = 0.13
* make clean
* make fetch
* md5sum download/planner-0.13.tar.bz2 >> checksums
* make install
binding issues
---------------
None
matchbook issues
----------------
None
geektoys issues
---------------
* gksu
The MASTER_SITES line in the Makefile is incorrect. It should be:
MASTER_SITES = http://people.debian.org/~kov/$(GARNAME)/1.0/
* gworldclock
The GARVERSION line in the Makefile is incorrect. It should be:
GARVERSION = 1.4.2
* gwget
Two files need editing in order to get gwget to build and install.
Do the following:
- edit the Makefile
CONFIGURE_ARGS = $(DIRPATHS) -with-epiphany-version=1.6
- download and unpack the application
make extract
- cd ./work/main.d/gwget-0.93
- edit the configure file
--- configure- 2005-03-19 16:37:54.000000000 -0500
+++ configure 2005-03-19 16:39:07.000000000 -0500
@@ -21679,9 +21679,11 @@
EPHY_AUTODETECT="(autodetect)"
if pkg-config --exists epiphany-1.2; then
EPHY_VER=1.2
-elif pkg-config --exists epiphany-1.4; then
+fi
+if pkg-config --exists epiphany-1.4; then
EPHY_VER=1.4
-elif pkg-config --exists epiphany-1.6; then
+fi
+if pkg-config --exists epiphany-1.6; then
EPHY_VER=1.6
fi
* gnomemeeting
Building gnomemeeting-1.2.1 requires current versions of pwlib and
openh323
http://www.gnomemeeting.org/index.php?rub=5&path=sources/sources
which in turn require some additional codecs that can be found at Fresh
RPMS:
http://ftp.freshrpms.net/pub/freshrpms/yellowdog/
The simplest approach is to
- create a work directory
- download the pwlib and openh323 tarballs
- unpack both of tarballs in the same work directory
- configure pwlib to install under /opt/garnome, or wherever you chose
to install garnome
- build pwlib
- build openh323, adding whatever missing codecs configure complains
about.
For the adventurous, who read and understood the GAR architecture
document, try adding entries for pwlib and openh323 to ./bootstrap
* thoggen
Update to version 0.3.
- edit the Makefile
GARVERSION = 0.3
- fetch the tarball
make fetch
- fix the checksum
md5sum download/thoggen-0.3.tar.gz >> checksums
- build and install
make install
hacker-tools issues
-------------------
Some of the hacker tools are i386 specific. Others require valgrind,
which has no complete, working implementation for PPC.
* alleyoop
alleyoop requires a working valgrind, which does not really exist for a
PPC. There is a work-in-progress, released by Paul Mackerras
http://valgrind.kde.org/related.html
that allows alleyoop to be compiled and launched on a PPC. Whether or
not it "does the right thing" is unknown to me.
* memprof
memprof will not build on a PPC for two reasons:
- segments of code that are i386 specific
- coding error from changes in libbfd made since 2002.
I have hacked at this a bit, creating "something" that runs. But...,
it's nothing I would bet the farm on.
mono issues
------------
MONO is currently broken for PPC's. I have made some progress building
the 1.06 branch, getting most things to run [including beagle, which
requires a kernel patch].
So what's the problem? Consider the following C# code sample gleaned
from the mono-dev bugzilla:
using System;
class T {
static void Main (string[] args) {
throw new Exception ();
}
}
Compile and run:
% mcs -g test.cs
Compilation succeeded
% mono test.exe
Unhandled Exception: System.ExecutionEngineException: SIGILL
The MONO folks are aware of this problem and are working to resolve it.
=======================================================================
Colophon
GNOME-2.10.0.1 represents a big advance over GNOME-2.6. Read the PR:
http://www.gnome.org/
Consideration should be given to upgrading YDL-4 to GNOME-2.10 in the
near future.
-Joseph
--
joseph_sacco[at]comcast[dot]net
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]