home : GNOME : Solaris_Port
|
Solaris Port In late 1998 I first tried porting GNOME 0.9 and Enlightenment to Solaris and created the following website explaining how to get things working. I continued updating it through the 1.05 timeframe. Since this was my first involvement with the GNOME project I keep this information available even though it isn't really useful anymore. Until about 2001 I continued helping users who would send me emails with related questions. Though questions dwindled after Paul Bamfather began offering GNOME 1.4 packages via his (no longer available "Building GNOME on Solaris" website. Since that time I have been involved with Sun's GNOME 1.4 pre-release, GNOME 2.0 for Solaris 8 & 9, and the GNOME releases for the Java Desktop System.
Critcisim, Comments, and Process for Installing Gnome, Enlightenment,
and related software on a Sun Sparc IPX (with WiTech chip) running Sparc
Solaris 2.7.
by: Brian A. Cameron
Process started 04/01/1999 (April Fool's Day)
My environment at time of build (aside from vanilla Sparc Solaris 2.7):
+ Compiler = gcc 2.95
+ install = from GNU fileutils 4.0
+ bison = bison 1.2.7
+ Make = gmake 3.77
+ gzip = gzip 1.2.4a
+ Perl = perl 5.004.04
+ I had no problems building and installing the above packages, btw.
I downloaded all the following tarballs from:
+ www.enlightenment.org
+ www.gnome.org
except as indicated (Berkeley libdb 2.7.3 comes to mind).
According to Enlightenment's doc page, the following is the correct order
to build the Enlightenment application:
STAGE 1 BUILD libgr, libZ, libgif or libungif, libpng, libtiff, esd, glib
STAGE 2 BUILD ImageMagick, Gtk
STAGE 3 BUILD Gtk-perl, Imlib, fnlib
STAGE 4 BUILD Enlightenment
BEGIN OF STAGE 1 BUILD
libgr
-----
I recommend that you do not build libgr. It contains older versions
of the other "STAGE 1" graphical libraries (libgif, libtiff, etc.).
At one time, this library provided an easier way to install these
many libraries, since you could install all of these libraries by
just building this one libgr package. However, the only versions
of libgr that I have seen contain such old & obsolete versions of
these libraries that they are useless in building the latest
Gnome and Enlightenment. Unless you find an updated libgr,
avoid using this shortcut. You get better results building
the rest of the "STAGE 1" libraries one at a time.
Zlib 1.1.2
----------
Installed in: /usr/local/zlib
+ dependencies: none
+ Build instructions in Makefile. This could use an "INSTALL" doc.
+ Built & installed without a hitch
JPEG 6b (62)
------------
Installed in: /usr/local/jpeg
+ dependecies: none
+ Build instructions in "install.doc". Why do not they use the
convention of naming this file "INSTALL"?
+ Built & installed without a hitch
+ Had to type "make install-lib" in addition to make install. This
info was buried in the install.doc. Otherwise the libraries are
not installed. I wasted time thinking the libraries were installed
then finding out they weren't when I ran libgtk's configure script
and it complained they weren't there.
+ Other than the above annoyances, built & installed without a hitch.
libungif-3.0
------------
Installed in: /usr/local/gif
+ dependencies: The makefile claims it prefers that automake is
installed (which I do not have), but says it only needs this if
I modified certain Makefile/configure files (which I did not).
It also says it likes Perl installed (which I have) so it can
run self-tests.
+ Build died in the "util" directory with the following error
message
+ Make check doesn't seem to do anything. Disappointing...
---(begin error msg excerpt)---
...
Making all in util
make[1]: Entering directory `/export/home/install/builds/libs/gif/libungif-3.0/util'
Makefile:545: *** Recursive variable `CFLAGS' references itself (eventually). Stop.
...
---(end error msg excerpt)---
Line 87 of the "Makefile" in the "util" directory reads as follows:
---(begin Makefile excerpt)---
CFLAGS = $(CFLAGS)
---(end Makefile excerpt)---
+ It built successfully after I deleted this line and re-ran make. Could
this problem be because I am not using automake?
libpng 1.0.1
------------
Installed in:/usr/local/png
+ dependencies: zlib
+ What's up with the way you have to build this? It *requires*
that the build directory look as follows:
---(begin INSTALL file excerpt)---
Your directory structure should look like this:
.. (the parent directory)
libpng (this directory)
INSTALL (this file)
README
*.h
*.c
scripts
makefile.*
pngtest.png
etc.
zlib
README
*.h
*.c
contrib
etc.
---(end INSTALL file excerpt)---
I managed this with symbolic links, so I wasn't strictly forced to use their
structure. Then I had to manually copy the makefile and edit it. This
could use a "configure" script.
+ Other than all that, it built & installed ok.
libtiff v3.4beta037
-------------------
+ I do not like that the "configure" script doesn't let you specify "--prefix",
but at least the configure does ask this question with a prompt.
audiofile 0.1.5
---------------
Installed in /usr/local/audiofile
+ dependencies: none
+ built and installed without a hitch
+ Only problem was that esound 0.2.8 requires audiofile 0.1.5. I grabbed
audiofile 0.1.6 first from www.gnome.org, but after I built it I couldn't
find an version of esound that would build from it. So I was forced to
find and build version 0.1.5.
esound 0.2.8
-------------
Installed in /usr/local/esound
+ dependencies: audiofile 0.1.5 (not 0.1.6)
+ Build & installed with no problem.
However when I try and run it I ran into a number of problems. My
problems are caused because the Sun IPX machine I am using has a
SUNW,am79c30 driver. This ancient sound driver only supports
8000 Hz sample rate, u-law encoding, 8-bit precision and is mono.
This configuration is not supported by the esd. If you are using
a newer Sun machine, you probably won't have the following problems.
I get the following error message when esd tries to start:
---(begin esound output)---
initializing...
No idea how to handle device `SUNW,am79c30', FIXME
fatal error configuring sound, /dev/dsp
---(end esound output)---
Talked with the author of ESD and he suggested I try modifying
lines 54-56 of audio_solaris.c which read as follows:
---(begin audio_solaris.c extract)---
if ( (strcmp(adev.name, "SUNW,CS4231") != 0)
&& (strcmp(adev.name, "SUNW,sb16") != 0)
&& (strcmp(adev.name, "SUNW,dbri") != 0) )
---(start audio_solaris.c extract)---
to...
---(start modified audio_solaris.c extract)---
if ( (strcmp(adev.name, "SUNW,CS4231") != 0)
&& (strcmp(adev.name, "SUNW,sb16") != 0)
&& (strcmp(adev.name, "SUNW,dbri") != 0)
&& (strcmp(adev.name, "SUNW,am79c30") != 0) )
---(start modified audio_solaris.c extract)---
When I tried to run it with this change, it now generates this error...
---(begin esound output)---
initializing...
AUDIO_SETINFO: Invalid argument
fatal error configuring sound, /dev/dsp
---(end esound output)---
That did not work. Remembering that the SUNW,am79c30 driver only
supports 8000 Hz sample rate, u-law encoding, 8-bit precision and
is mono. So, I changed lines 86 to 113 of audio_solaris.c as
follows:
---(begin audio_solaris.c extract)---
AUDIO_INITINFO(&ainfo);
ainfo.play.sample_rate = esd_audio_rate;
if ((esd_audio_format & ESD_MASK_CHAN) == ESD_STEREO)
ainfo.play.channels = 2;
else
ainfo.play.channels = 1;
if ((esd_audio_format & ESD_MASK_BITS) == ESD_BITS16)
ainfo.play.precision = 16;
else
ainfo.play.precision = 8;
ainfo.play.encoding = AUDIO_ENCODING_LINEAR;
ainfo.play.gain = gain;
ainfo.play.port = port;
ainfo.play.balance = AUDIO_MID_BALANCE;
ainfo.play.buffer_size = bsize;
if (ioctl(afd, AUDIO_SETINFO, &ainfo) == -1)
{
perror("AUDIO_SETINFO");
close(afd);
esd_audio_fd = -1;
return -1;
}
---(end audio_solaris.c extract)---
to...
---(begin modified audio_solaris.c extract)---
AUDIO_INITINFO(&ainfo);
if (strcmp(adev.name, "SUNW,am79c30") == 0)
{
ainfo.play.sample_rate = 8000;
ainfo.play.channels = 1;
ainfo.play.precision = 8;
/* The next line can also be set to AUDIO_ENCODING_ULAW,
* though it sounded slightly worse to me. */
ainfo.play.encoding = AUDIO_ENCODING_ALAW;
/* Docs say that the balance is ignored in mono */
}
else
{
ainfo.play.sample_rate = esd_audio_rate;
if ((esd_audio_format & ESD_MASK_CHAN) == ESD_STEREO)
ainfo.play.channels = 2;
else
ainfo.play.channels = 1;
if ((esd_audio_format & ESD_MASK_BITS) == ESD_BITS16)
ainfo.play.precision = 16;
else
ainfo.play.precision = 8;
ainfo.play.encoding = AUDIO_ENCODING_LINEAR;
ainfo.play.balance = AUDIO_MID_BALANCE;
}
ainfo.play.gain = gain;
ainfo.play.port = port;
ainfo.play.buffer_size = bsize;
if (ioctl(afd, AUDIO_SETINFO, &ainfo) == -1)
{
perror("AUDIO_SETINFO");
close(afd);
esd_audio_fd = -1;
return -1;
}
---(end modified audio_solaris.c extract)---
Now I get sound, but it sounds awful. Again I talked with the
author of ESD and determined that this is because ESD only
supports LINEAR encoding, and not U-LAW encoding. The author
told me that he did not have enough time to help me with this
issue. If you have these sorts of problems, perhaps this
information will be useful to you.
glib 1.2.1
----------
Installed in /usr/local/gtk
+ dependencies: none
+ Built and installed wtihtout a hitch.
freetype 1.1
------------
Installed in /usr/local/freetype
+ dependencies: none
+ Had to edit lib/arch/unix/Makefile line 14
---(begin Makefile edit)---
14c14
< INSTALL = .././install-sh -c
---
> INSTALL = ../../.././install-sh -c
---(end Makefile edit)---
+ Had to edit test/arch/unix/Makefile line 17
---(begin Makefile edit)---
17c17
< INSTALL = .././install-sh -c
---
> INSTALL = ../../.././install-sh -c
---(end Makefile edit)---
FINISH OF STAGE 1 BUILD, START OF STAGE 2 BUILD
ImageMagick 4.0.5
-----------------
+ dependencies: JPEG, Zlib, HDF, PNG, TIFF, DPS, freetype
+ optional dependencies I do not have FlashPIX, JBIG, MPEG, HDF.
DPS (Ghostscript)
+ built & installed without a hitch.
gtk 1.2.1
---------
Installed in /usr/local/gtk
+ dependencies: glib 1.2.1
+ built & installed without a hitch.
FINISH OF STAGE 2 BUILD, START OF STAGE 3 BUILD
imlib 1.9.4
-----------
Installed in /usr/local/imlib
+ dependencies: gtk >= 1.1.9, jpeg, gif, png
+ compile failed when building imlib_config.c in directory utils
---(begin makefile output excerpt)---
In file included from /usr/include/locale.h:51,
from imlib_config.c:35:
/usr/include/libintl.h:31: parse error before `const'
/usr/include/libintl.h:32: parse error before `const'
/usr/include/libintl.h:33: parse error before `const'
/usr/include/libintl.h:34: parse error before `const'
/usr/include/libintl.h:35: parse error before `const'
imlib_config.c: In function `add_onoff_visual':
imlib_config.c:1293: warning: passing arg 2 of `gtk_clist_new_with_titles'
from incompatible pointer type
---(end makefile output excerpt)---
I was able to fix this by moving the "#include
|
e-mail
© 1994-2008 Brian A. Cameron