[sword-devel] The Sword Project on OpenSolaris

Greg Hellings greg.hellings at gmail.com
Thu Oct 9 16:27:09 MST 2008


Building on Solaris notes:

I installed openSolaris 2008.05, then updated to all the latest packages (I
had to manually enter the address for pkg.opensolaris.org into the
/etc/hosts file, because the system could not figure out DNS until after the
update).  This was done by issuing the command pkg image-update and
following its prompts (it wanted me to update the pkg package first, then
re-issue the image-update command).

I then rebooted, so the updates would be completed and entered the package
manager to install icu, icud, gcc packages and curl.  I then had to manually
build and install pkg-config from sources, since the executable is not
included with the openSolaris packages, from what I could find.

I opted to install CLucene manually, as well, since I thought it would be
good for the SWORD library to have it, and it doesn't appear in the default
repositories of openSolaris.

After that, I configured and built the SWORD library.  I received an error
message during the linking of the buildtest which claimed it couldn't find
libustdio, even though it was clearly located in /usr/lib.  Nevertheless, I
forged ahead, undaunted by installing the SWORD library.  I had to manually
copy sword.pc into /usr/lib/pkgconfig and chmod it to 644 permissions, so
that someone other than root can read it.

I then installed SUNWxorg-headers, to pull in the headers and pkg-config
files for xrender.pc and other such similar issues.  I also installed the
SUNWgnu-gettext package from the repository.  perl-xml-parser was also
required.  At some point I also added gnome-common-devel to the mix, though
I'm not certain if it was necessary.

So, in short, adding the following packages from the package manager:
SUNWxorg-headers
gnu-gettext
gcc
gccruntime
gcc-dev
icu
icud
curl
perl-xml-parser
(possibly) gnome-common-devel
and manually installing the following packages:
pkg-config
CLucene
SWORD
should allow you to get Gnomesword 2.4.0 to compile.  At some point in the
build process, the system died because I did not have permissions to
interact with Editor-stubs.c.  It appeared that there was no file/group
owner correlation, which might be a strange artifact of my system and a lack
of knowledge about Solaris' untarring defaults.  However, issuing the
command chown -R hellings:staff * in the top level of the build directory
for gnomesword solved that problem.

I was left, at that point, with linker errors hanging all over the place.
So I thought about trying to go back and resolve the issue with the SWORD
buildtest.  A simple ln -s /usr/lib/libustdio.so.2 /usr/lib/libstdio.so
solved the compile problems there, but the linking then issued a large
number of undefined symbol errors, all related to icu::UnicodeString and
icu::Transliterator.  So I went back to the drawing board, recompiling with
the --with-icu=no flag enabled (for some reason the packagers of the icu
packages in openSolaris did not feel that it was necessary to include the
icu-config file with their system).  This time the entire SWORD build and
install went without a hitch, including the pkg-config file.

So I tried to rebuild the gnomesword and about 2/3 of the undefined symbols
were taken care of, but a large number of them still existed, all referenced
from the ../lib/gecko/libgecko.a file:
Undefined            first referenced
 symbol                  in file
nsAString::BeginReading() const
../../src/gecko/libgecko.a(gecko-services.o)
nsCOMPtr_base::assign_from_helper(nsCOMPtr_helper const&, nsID
const&)../../src/gecko/libgecko.a(Yelper.o)
nsCOMPtr_base::begin_assignment()      ../../src/gecko/libgecko.a(Yelper.o)
NS_TableDrivenQI(void*, QITableEntry const*, nsID const&,
void**)../../src/gecko/libgecko.a(gecko-services.o)
vtable for nsGetInterface           ../../src/gecko/libgecko.a(Yelper.o)
NS_NewGenericFactory(nsIGenericFactory**, nsModuleComponentInfo
const*)../../src/gecko/libgecko.a(gecko-services.o)
vtable for nsCreateInstanceByContractID../../src/gecko/libgecko.a(Yelper.o)
nsCOMPtr_base::assign_from_qi_with_error(nsQueryInterfaceWithError const&,
nsID const&)../../src/gecko/libgecko.a(Yelper.o)
nsCOMPtr_base::assign_with_AddRef(nsISupports*)
../../src/gecko/libgecko.a(Yelper.o)
nsCOMPtr_base::assign_from_qi(nsQueryInterface, nsID const&)
../../src/gecko/libgecko.a(Yelper.o)
nsCOMPtr_base::~nsCOMPtr_base()
../../src/gecko/libgecko.a(gecko-utils.o)
nsCOMPtr_base::assign_from_gs_contractid_with_error(nsGetServiceByContractIDWithError
const&, nsID const&)../../src/gecko/libgecko.a(gecko-utils.o)
ld: fatal: Symbol referencing errors. No output written to gnomesword2


Good luck to the next warrior!

--Greg

On Tue, Oct 7, 2008 at 11:45 PM, Greg Hellings <greg.hellings at gmail.com>wrote:

> List,
>
> On a side note - I just downloaded and installed OpenSolaris 2008.05 (5.11
> for those of you on the Sun versioning scheme) and it installs Gnome 2.20 by
> default as its windowing system.  It might have a more up-to-date version in
> the default package manager, but I installed it into a VM, and right now the
> VM is misbehaving.  However, basing off of the pre-installed Gnome will
> probably be much easier than trying to shoe-horn something else into the
> system.
>
> --Greg
>
>
> On Sun, Oct 5, 2008 at 9:29 PM, Greg Hellings <greg.hellings at gmail.com>wrote:
>
>> Karl,
>>
>> On Sun, Oct 5, 2008 at 8:58 PM, Karl Kleinpaste <karl at kleinpaste.org>wrote:
>>
>>> Greg, there were approximately two dozen pieces of information in your
>>> message for which I have exactly zero context.  Bear in mind that I have
>>> not used a Solaris machine in the better part of 15 years.
>>
>>
>> My apologies, I was very thick with the information.  I'll try and
>> elucidate a little more of it here.
>>
>>
>>>
>>>
>>> For starters, I have no knowledge of how to configure Solaris' package
>>> manager to use any other repository -- none of this GUI tool's menus
>>> offer any possibility of adding a new repository reference beyond just
>>> opensolaris.org, though there is a combobox in the upper right which
>>> would be useful, if such a thing had been configurable.  At the moment,
>>> it's got just 1 element, opensolaris.org.
>>
>>
>> Firstly, the system I am working in is not the OpenSolaris but the
>> commercial version of Solaris 10 (which is supposed to be virtually
>> identical to OpenSolaris, just a little behind in the packages and with
>> commercial tech support).  I have the ability to login with a GUI, but my
>> campus' VPN will not allow me to install it on a 64-bit operating system (my
>> home PC uses Vista 64-bit), so I have to connect to the Solaris system with
>> command-line for virtually all of my interaction with the system.  At that
>> level, if one uses a bash script for login, the system looks and functions
>> extremely similar to a Linux environment.  It is from the command line that
>> I use pkg-get, a system which is loosely based off of the Debian apt-get
>> packaging system, but rather than using .deb files, it uses standard Solaris
>> .pkg files.  Judging by the number of references I find to it in a Google
>> search, it seems that the system is reasonably well in use by people in the
>> Solaris community.
>>
>> Since many people want access to the GNU tools and other open source
>> software, but do not necessarily want to deal with the minute differences
>> between the Linux and Solaris environments, a group called Community
>> SoftWare (CSW) offers the pkg-get tool that I mentioned above with a default
>> repository of certainly libraries and programs which are useful (mainly) to
>> developers who are looking for Linux-like library functionality in a Solaris
>> environment.  The CSW tools (pkg-get) are available at the website I
>> mentioned in my previous email, http://www.opencsw.org.  For my own
>> research on the Solaris system, I have found pkg-get to be an indispensible
>> tool which already has certain of the base libraries and packages which I
>> and my tools rely upon, and I recently installed the SWORD library to that
>> same machine in preparation of some research that I plan to do based off of
>> SWORD data, building it against the libraries installed with pkg-get (all of
>> the dependent libraries were available through pkg-get, except for CLucene).
>>
>> One of the difficult things related to CSW and the pkg-get system is that
>> it requires the user to manually alter (in my .bashrc script) the variables
>> for PATH and PKG_CONFIG_PATH and so on to find the executables and libraries
>> that are installed by the system, to /opt.  Since I don't use the GUI login
>> except when my command-line login becomes corrupted or defunct, I can't
>> speak to the ease of installing the gnome packages that are available with
>> the CSW system or using them, but I can tell you that they are available
>> with a default installation of the pkg-get.
>>
>> For my own part, I installed pkg-get, modified my .bashrc to update the
>> PATH and PKG_CONFIG_PATH variables to point them to the subdirectories of
>> /opt/csw where the packages were installed, and then was able to
>> effortlessly install mysql, apache2, icu, gcc, vim, etc with updated
>> versions that patched problems with the bundled versions for the Solaris
>> 5.10 system.
>>
>>
>>>
>>>
>>> Also, you say that libxrender is in "both" repositories, but that's
>>> objectively not true when I am in the package tool, looking at "All"
>>> packages, and I search for "xre" -- empty set.
>>>
>>> In general, I have no knowledge of why any particular pkg-get script or
>>> tool is supposed to provide superior configurability beyond the GUI
>>> package tool I'm already using and so I have no reason to suppose it
>>> will be an improvement when the problem is not the package tool itself
>>> but the fact that the package in question is simply not there.
>>
>>
>> The pkg-get package is not intended to replace the default package
>> installation system, instead it is intended to supplement that system with
>> additional packages that Sun will not allow into the Solaris fold.  I
>> seriously doubt that it will be better than the GUI system.  I find that,
>> for package managers, I almost always prefer to use a GUI tool if I'm
>> looking for libraries which may or may not be in the package repository.
>> But, as a supplement for those packages which the standard package set of
>> Solaris excludes, pkg-get might be a useful addition to your system.
>>
>> Hope this cleared some things up, and if you need any other help or
>> information, don't hesitate to ask again.
>>
>> --Greg
>>
>>
>>>
>>>
>>> Any further clues would be welcome.
>>>
>>> _______________________________________________
>>> sword-devel mailing list: sword-devel at crosswire.org
>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>> Instructions to unsubscribe/change your settings at above page
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.crosswire.org/pipermail/sword-devel/attachments/20081009/4bbb47fc/attachment.html 


More information about the sword-devel mailing list