From KRayWiki
Revision as of 22:23, 15 January 2019 by Krb (talk | contribs) (Document how to rebuild info/dir files.)
Jump to navigation Jump to search

A description of a SCO OpenServer 5.0.7 open source project development system

See Also: 

User Environment

A summary of possibly pertinent user environment follows:

  1. As a rule, development occurs from within a BASH shell.
    Logon, then $ bash --login.
    ~/.bashrc has no development-specific settings.
    ~/.bash_profile does have a few pertinent settings.
    export CPATH
    export CFLAGS
    export PKG_CONFIG_PATH
  2. Search paths
  3. Tool chain updates
    gcc 2.95.3, 3.4.6
    The vendor-supplied gcc (2.95.3) is used by default; gcc 3.4.6 (with autotool and other utility updates) is required for some builds; updated gcc utilities were built with a version suffix (i.e. gcc-3.4.6) so they safely reside alongside the vendor-supplied build tools.
    automake 1.8.5, 1.9.6, 1.10.3, 1.11.6, 1.12.6, 1.13.4, 1.14.1, 1.15.1, 1.16.1
    1.16.1 is used by default; 1.9.6 has been used successfully.
    autoconf 2.69
    binutils 2.20.1a
    libtool 2.4.2
    2.4.3-2.4.6 present some build challenges; older versions are viable; 1.5.24 has been used successfully.
    m4 1.4.17
    1.4.18 presents some build challenges; older versions are viable; 1.4.9 has been used successfully.
    make 4.2.1
    Some older versions are viable; 3.82 has been used successfully.
  4. Various updated tools are used in lieu of older, vendor-supplied utilities:
    curl 7.61.0 (i686-pc-sco3.2v5.0.7) libcurl/7.61.0 OpenSSL/1.0.2o zlib/1.2.11 libssh2/1.1
    grep 2.25 (or, 2.7)
    2.26 and above experience configure issues:
    getprogname.c:181:4: #error "getprogname module not ported to this OS"
    OpenSSH_7.7p1, OpenSSL 1.0.2o
    openssl 1.0.2o
    python 2.5.6
    sudo 1.6.9p23
    xz 5.0.8

NOTE: The whole set of tools listed may not all be required, but to help someone replicate these results, but it is hoped that the list facilitates understanding how one might go about reproducing the builds in the event that sequence-dependencies are not documented. The FTP site resources were built on a system that already had a set of upgraded tools not necessarily matching that latest versions in the list above, so even though the packages were built in a particular order, that order will not necessarily reflect the sequences in which the base SCO system was built up (thought it is not that far off being correct).

When installing from the FTP site binary distribution tarballs, the sequence in which the archives were built does slightly influence the end state of the system in that, for example, /usr/local/share/info/dir contains information related to prior builds. So, if the most recently tarball made is installed last, even if not all tarballs are ultimately deployed, the resulting build environment will most closely match that of the reference development system itself. That said, the dir file is an exception. Most, if not all other, files are not affected by install order.

  1. automake 1.8.5 -> 1.16.1 in ascending version order.
  2. m4 1.4.17
  3. autoconf 2.69
  4. libtool 2.4.2
  5. make 4.2.1
  6. gcc 3.4.6
  7. xz 5.0.8
  8. grep 2.25
  9. (TBD)

While this order likely approximates the original the packages were upgraded with respect to SCO-supplied tools, the actual order the development tools were first build was not clearly set down. I one tries to reproduce this environment by building from source on a base SCO install (described below), it is quite possible that some build-order issues could arise in the event that building one tool somehow depends on availability of another updated tool.

Note that gcc-3.4.6 was actually built first, though it is somewhat unclear whether that success depended on building other tool updates. Despite its availability, the SCO-provided gcc was generally used where practical to do so.

To rebuild /usr/local/info/dir and /usr/local/share/info/dir files that may be impacted by installation of these tar files, use a procedure something like this:

for fldr in /usr/local/info /usr/local/share/info; \ do \ if [ -d "${fldr}" ]; \ then \ test -e ${fldr}/dir && rm -f ${fldr}/dir; \ find ${fldr} -type f \ -exec install-info --info-dir=${fldr} {} \; ; \ test -e ${fldr}/dir && chmod 644 ${fldr}/dir; \ echo; \ echo "Rebuilt: '${fldr}/dir'"; \ echo; \ fi; \ done

Installed Packages

The following list helps define what vendor-specific packages are present on the systems used to build free software source packages. The list does not necessarily paint the complete picture, as a number of the software listed below is configured to take precedence over some of the vendor-supplied tools.


The following list was obtained from the Software tab of the "custom" utility.

Extended Shells (ver 1.4.1Ab) FSUpthreads - POSIX 1003.1c threads implementation (ver 3.14) GNU Development Tools (ver 5.0.7Kj) GNU Development Tools (ver 5.0.7g) Java 2 1.3.1_22 Plugin (ver 1.3.1Va) Java 2 1.3.1_22 Runtime Environment (ver 1.3.1Va) Java 2 1.3.1_22 Software Development Kit (ver 1.3.1Va) SCO OpenServer Development System (ver 5.2.0Aa) SCO OpenServer Enterprise System (ver 5.0.7Hw) patchck - package management tool (ver 18051503) OSS672A - OpenServer 5 Network Header File Update (ver 1.0.0) OSS673A - OSR 5.0.7 SCSI Floppy Driver supplement (ver 1.0.0) P535239A - pmd security fix (ver 1.0.0) SCO OpenServer Release 5.0.7 Maintenance Pack 5 (ver 1.0.0Mc)


From a pkginfo point of view, installed packages are:

system OSRcmppkg UDK Compatibility Module for SCO OpenServer utilities grep grep -- Search input for matching patterns system j2jre131 J2SE Runtime Environment 1.3.1 system j2jre142 J2SE Runtime Environment 1.4.2 utilities j2plg131 J2SE 1.3.1 - Java Plug-in system j2pls131 Java 2 Standard Edition, version 1.3.1, Demos & Debug system j2sdk131 Java 2 Standard Edition, version 1.3.1 system libC UnixWare Runtime C++ Library system libc Runtime C Library system libm UnixWare Runtime Math Library system libthread Runtime Thread Library package patchck patchck - package management tool utilities sudo sudo, sudoedit -- execute a command as another user package sysinfo sysinfo - information gathering tool system urwfonts (URW)++ Free X11 Fonts system xorgurw (URW)++ Free X11 Fonts utilities xz XZ Utils -- General purpose data compression utilities The following software packages have been installed: UDK Compatibility Module for SCO OpenServer UDK Compatibility Runtime Set for SCO OpenServer grep -- Search input for matching patterns J2SE Runtime Environment 1.3.1 J2SE Runtime Environment 1.4.2 J2SE 1.3.1 - Java Plug-in Java 2 Standard Edition, version 1.3.1, Demos & Debug Java 2 Standard Edition, version 1.3.1 UnixWare Runtime C++ Library Runtime C Library UnixWare Runtime Math Library Runtime Thread Library patchck - package management tool sudo, sudoedit -- execute a command as another user sysinfo - information gathering tool XZ Utils -- General purpose data compression utilities