Introducing the tgcware software distribution for IRIX

This is a collection of software built and packaged in the native SGI inst format for IRIX.
The aim is to get a wide range of up-to-date opensource software available for older IRIX releases and to support all platforms that these releases support.
The current target releases are IRIX 5.3 and 6.2.
The frequency with which packages are added and updated depends heavily on my available spare time.
I'll happily take requests for specific software just don't request things like OpenOffice and Firefox.
I will attempt to address security issues in the packages as I become aware of them but I will not guarantee updated fixed packages nor can I take any responsibility for any problems this may cause.

Building the software

The software is mostly built with gcc in particular anything to do with C++ is built with GNU g++.
My reasoning is that there are enough issues with porting as it is and I didn't want to deal with compiler issues aswell.
This doesn't mean that some packages won't be built with SGI compilers just that gcc is the default.

When I build a package my aim is generally to build the "kitchen sink" and use as many of the existing packages as possible to provide functionality.
This means lots of dependencies on other packages but it also means maximum functionality.
I always build with NLS support where possible.
I will always use GNU iconv over native iconv.
All software is built to install in /usr/tgcware (though proper init.d scripts are put in /etc/init.d)
All binaries and shared libraries have been stripped.

Overview of the categories and subsystems used by default

The packages use 3 standard categories: sw, man and opt.

The sw subsystem is laid out like this:
sw - Software
|-base - base software (default)
|-lib - shared libraries (default)
`-dev - development files (nodefault)

The sw.base subsystem will usually contain selected README, ChangeLog etc. documents from the sourcetree besides the binaries/scripts.

The sw.lib subsystem contains the shared libraries.
In most cases no speciel care has been taken to use -set_version for shared libraries which means that projects without libtool will usually not have a version apart from the soname.

The subsystem contains include files, static libraries and symlinks to the shared libraries with an unversioned name to be used at link time.
Ie. ->

All binaries and shared libraries are linked with -rpath where necessary to make sure that the right shared libraries are used at runtime.

The man subsystem is laid out like this:
man - Documentation
|-doc - other documentation
|-dev - development man pages (section 3)
|-man - man pages (all sections except section 3)
`-info - info pages

The man.doc subsystem should contain anything that is not a manpage or infopage and which doesn't belong in one of the subsystems under the sw category. This means things like a HTML manual or a tutorial etc.

The and subsystems contain only real manpages. The section 3 manpages containing information used by programmers are in the subsystem. All other sections are in the subsystem.

The subsystem contains documentation in GNU info format.

Almost all manpages are preformatted with nroff from GNU groff like this:
$ nroff -c -mandoc -Tascii -t
I did this so people wouldn't have to install groff just to read the manpages.
Also both manpages and info pages are gzipped (IRIX 5.3 has compress(1)ed or pack(1)ed manpages).

The opt subsystem is laid out like this:
opt - Optional components
|-relnotes - release notes
|-src - patches etc.
`-dist - distribution files (idb, spec)

The opt.relnotes subsystem contains the packagers release notes.

The opt.src subsystem will contain any patches used when building the software.
The upstream source will not be included due to space considerations. Instead the release notes contains the sha1sum of the source distribution used and the URL of the upstream vendor of the source.
I will ofcourse provide the source upon request if the license requires it (GPL).

The opt.dist subsystem contains the idb and spec files used with gendist to build the inst'able image

From time to time the layout of the subsystems might differ due to special requirements. See the openssh package for an example of this.

I try to make sure that the subsystems all have the right dependencies on other packages.
Generally dependencies are auto generated but from time to time they might need tweaking.
Beware that all dependencies are open-ended ie. <version> maxint since it's anybodys guess when a shared library is going to change its ABI.

There was an issue with tgcware packages built prior to Aug. 26, 2006 where dependencies on base irix components can cause unresolveable conflicts. Please make sure to use the latest available packages in this case where this problem is not present. If you must install the old package you can set the inst option rulesoverride to true.

Platform specific notes

IRIX 6.2
Packages are built on an Indigo2 R10000/195 running IRIX 6.2 + patches.
All packages are built for MIPS3/n32 and should run on any machine that can run IRIX 6.2.
You can see a list of recommended patches for running tgcware here

These packages should also work fine on IRIX 6.3, 6.4 and 6.5.x

IRIX 5.3
Packages are built on an Indy R4600PC/133 running IRIX 5.3 + patches.
All packages are built for MIPS1/o32 and should run on any machine that can run IRIX 5.3.
Don't worry if you don't have all the listed patches installed, it should work anyway. If it doesn't please tell me!

If you're having trouble with tgcware programs segfaulting after installation you might try to set the inst option skip_rqs to true before installing. It seems the requickstarting of files done by rqsall can cause this problem to occur.
To workaround this issue all current packages for IRIX 5.3 was built with the linker option -no_rqs.


IRIX 5.3 - stable
IRIX 6.2 - stable

Mirrored from