Tips for getting tla to compile and work on solaris

These tips are for tla 1.2 on Solaris 2.7 but reportedly work OK on Solaris 8 as well.

It's assumed that you've already retrieved and unpacked the tla sources, and in the following text the notation $TLA_SRC is used to refer to the root of the tla source directory. Of course you should substitute the actual pathname on your system (or put it into an environment variable called TLA_SRC).

For more general installation instructions, see Installing Arch.

  1. Make sure the "tsort" program is on your path somewhere (you can install GNU coreutils to get it); this is only necessary during configuration I think.

  2. Make sure you have (at least) these GNU packages installed somewhere:
    • gcc (the default solaris C compiler is apparently not ANSI compatible)

    • bash (tla needs a posix shell; also solaris /bin/sh is way flaky)

    • GNU diffutils, version >= 2.8 (tla requires gnu diff/patch)

    • GNU awk

    • GNU grep

    • GNU patch

    • GNU tar

    • GNU make version 3.80+

    (There be other things required too, the above list is just what I needed to install in addition to whatever the sysadmin had already put in /usr/local.)

    A convenient place to find Sun binary packages for GNU (and other free software) tools is http://www.sunfreeware.com/.

    Below, the installation prefix for these packages is called $LOCAL.

  3. Until it is merged into the main tla distribution, apply the following GNU patch file to the tla sources:

    The patch file should be applied as follows, if you've put the patch file into /tmp/tla-solaris.patch:

     $ cd $TLA_SRC
     $ patch -p1 < /tmp/tla-solaris.patch
    
    • [ The patch makes two changes:

      1. The solaris "tail" command doesn't support the -n option, so the config scripts should use "sed" instead

      2. Solaris needs to link against -lsocket, -lresolv, and -lnsl

      These changes can also be found in following arch revisions:
      • package-framework

        miles@gnu.org--gnu-2004/package-framework--devo--1.0--patch-1
        miles@gnu.org--gnu-2004/package-framework--devo--1.0--patch-2

        tla

        miles@gnu.org--gnu-2004/tla--devo--1.2--patch-6
        miles@gnu.org--gnu-2004/tla--devo--1.2--patch-7

      The archive miles@gnu.org--gnu-2004 is available from: http://sourcecontrol.net/~miles/miles@gnu.org--gnu-2004/ ]

  4. Make a tla build directory, and configure tla; here we install tla into $LOCAL/bin as well:

     $TLA_SRC/src/configure                          \
            --config-shell $LOCAL/bin/bash           \
            --with-posix-shell=$LOCAL/bin/bash       \
            --with-cc=$LOCAL/bin/gcc                 \
            --with-gnu-diff=$LOCAL/bin/diff          \
            --with-gnu-diff3=$LOCAL/bin/diff3        \
            --prefix=$LOCAL
    
     make
    
     make install
  5. To use various optional features of tla, you must have some more external packages installed; In particular:

    Feature

    Package

    Source/binary downloads

    Secure remote archive access with the sftp: protocol

    ssh

    http://www.openssh.com/portable.html

    Cryptographic signing of archives

    gnupg

    http://www.gnupg.org/download/index.html
    http://gnupg.unixsecurity.com.br/solaris.html

  6. Binary available

A binary of tla 1.2.1 for Solaris is available at http://www.zipworld.com.au/~mlh/. The build notes for are similar to Miles' above. However some portability fixes are in the most recent 1.2.2 release candidate.

Compiling tla on Solaris (last edited 2008-07-24 01:12:27 by 82)