SCO Skunkware: Open Source Software
|
Welcome to the Skunkware Development Tools section. Here you will
find replacement compilers, debuggers, libraries and other tools used for
software development. A lot of these tools are updated regularly, so you
may want to check out the
on-line
version of this page.
Package List
Name |
Description |
Version |
OSR5 |
UnixWare |
aalib |
Ascii graphics library |
1.2 |
Yes |
Yes |
autoconf |
GNU configuration script generator |
2.12 |
Yes |
Yes |
binutils |
GNU binutils |
2.9.1 |
Yes |
Yes |
bison |
GNU parser generator |
1.25 |
Yes |
Yes |
cdrecord |
Record audio & data CD's |
1.6.1 |
Yes |
Yes |
cvs |
GNU concurrent version system |
1.10 |
Yes |
Yes |
ddd |
Data Display Debugger |
3.2.1 |
Yes |
Yes |
dejagnu |
GNU test framework |
971028 |
Yes |
Yes |
erlang |
Programming language |
47.4.1 |
No |
Yes |
expect |
Expect - a TCL Extension |
5.25 |
Yes |
Yes |
flex |
Fast lexical analyzer generator |
2.5.4 |
Yes |
Yes |
gcc |
Integrated GNU Compilation System |
2.95.2 |
Yes |
Yes |
gdb |
GNU Source level Debugger |
970817 |
Yes |
Yes |
getline |
command-line editing library with history |
3.11 |
No |
Yes |
glib |
Graphics Libraries |
2.0 |
Yes |
Yes |
helpapi |
SCO Help API for UnixWare 7 |
1.1 |
No |
Yes |
indent |
GNU indent - a source code beautifier |
1.9.1 |
Yes |
Yes |
infodock |
Advanced Integrated Development Environment |
4.0.8 |
No |
Yes |
intel2gas |
Converts NASM/MASM to GAS |
1.3.3 |
No |
Yes |
js |
NGS JavaScript Interpreter |
0.2.4 |
No |
Yes |
kdevelop |
KDevelop integrated development environment |
1.1 |
Yes |
Yes |
libtool |
GNU Libtool |
1.3.5 |
Yes |
Yes |
make |
GNU Make |
3.76.1 |
Yes |
Yes |
mkpkg |
SCO Pkgadd Packaging Frontend |
1.1 |
Yes |
Yes |
mkvol |
SCO Custom Packaging Frontend |
1.1 |
Yes |
Yes |
patch |
GNU patch |
2.5 |
Yes |
Yes |
perl |
Perl 5 Scripting Language |
5.004_04 |
Yes |
Yes |
pkgtools |
Pkgadd/pkgmk and family |
skw98 |
Yes |
No |
pthreads |
FSU Posix threads |
3.5 |
Yes |
No |
python |
Python - an object orient scripting tool |
1.5 |
Yes |
Yes |
qt |
QT X11 Widget Set |
1.44 |
Yes |
Yes |
rcs |
GNU revision control system |
5.7 |
Yes |
Yes |
readline |
GNU Readline Library |
2.1 |
Yes |
Yes |
stl |
SGI Standard Template Library |
3.11 |
Yes |
Yes |
tcl |
Tool Command Language (TCL) |
8.0p2 |
Yes |
Yes |
tclx |
Extended TCL |
8.0.2 |
Yes |
Yes |
tk |
Tk - an X11 Toolkit for TCL |
8.0p2 |
Yes |
Yes |
vim |
Vi IMproved, a programmers text editor |
5.5 |
Yes |
Yes |
Integrated GNU Compilation System
ftp://ftp2.sco.com/skunkware/osr5/devtools/gcc/
ftp://ftp2.sco.com/skunkware/uw7/devtools/gcc/
ftp://egcs.cygnus.com/pub/egcs/releases/index.html
http://egcs.cygnus.com/
The GNU C Compiler (gcc) is an advanced optimizing compiler for C,
C++ and Objective C. Its has the advantage of generating adequate code,
having many additions and augmentation over a pure std ANSI C compiler
and of being widely available on many platforms.
Unixware:
On UnixWare gcc always (and can only) generate ELF binaries.
This is equivalent to explicitly specifying the -melf switch.
Skunkware 7.1.0 for UnixWare 7.1.0 contains only
egcs version 1.1.1. (no gcc).
Later releases switch back to gcc (now merged with egcs)
OpenServer:
The OpenServer version of gcc can generate both COFF and ELF binaries
from within a single compiler. The default is generation of ELF binaries
(equivalent to explicitly specifying -melf),
use the -mcoff flag to turn on COFF generation.
OpenServer: Dependencies
Important NOTE
All versions of GCC post skunkware96 require the native versions of the
linker, assembler and system libraries and headers
which are normally part of the native Development System.
If you have not or desire not to install the Native Development System
you will need to install some additional packages to supply the
needed linker, libraries, headers and assembler.
On OpenServer release 5.0.4 or later
you will need to install (only) the "Libraries and Linkers package"
which also contains the SCO assembler.
This package does not require licensing.
On SCO OpenServer release 5.0.0 or release 5.0.2
you will need to install both the "Libraries and Linkers" package and
also the assembler from the native development system package. Its
probably easiest to just install the Native Development system package.
You do not need to license this for gcc to use the pieces it needs.
If you already have the SCO OpenServer Development System package
installed, you do not need to install anything extra in order to use gcc.
Both the Native "SCO Development System" and the "Linkers and Libraries"
packages are on the base (first) OS CD of the OS media pack and can be
installed using custom as follows:
- Invoke custom
- Select "Install New" option from the "Software" menu.
- Follow the prompts to steer custom toward the original media you used
to install OpenServer5.
- Select Application Development Libraries and Linker. Install it all.
This will give you the libraries, headers, and man pages.
- On 5.02 or prior select the SCO Development System and install it
This will give you the needed assembler.
Note that you can safely install and use gcc and all of these development
system utilities alongside an existing (licensed or unlicensed)
SCO OpenServer Development System, without impacting either
development system at all.
OpenServer: Versions and Contents
On Skunkware 98 the "Gcc" package is an "Integrated GNU C
Compilation System" containing both the "production quality" GNU C
Compiler (gcc) and the experimental (at that time)
EGCS GNU C Compiler from Cygnus. When installing the Gcc package off
of Skunkware 98 both of these compilers are installed and co-exist.
By default, the FSF gcc will be used.
The system wide default can be set in the file /etc/default/gcc
by setting the PREFERRED_GCC variable to either
/usr/local/lib/front-fsf
or
/usr/local/lib/front-egcs.
An individual developer can over-ride the system wide default by
setting and exporting PREFERRED_GCC in her environment.
Later versions of the gcc package than that of skunkware98
(gcc2.95 and greater) contain only "gcc" which is the merged
result of gcc and egcs.
OpenServer: Differences from Skunkware96 GDS
For (early) adopters of the GDS as shipped on Skunkware 96, or for users who
have downloaded that GDS version from the SCO ftp site there
are some switch changes to be aware of with respect to later releases of GCC.
- the -b elf flag has been replaced with -m elf ( or -melf).
- the -K PIC option has been replaced with the -fPIC option.
These changes are to ensure compatibility with all other versions
of the GNU C Compiler.
Note that some versions of libtool generate -belf to invoke gcc
on SCO platforms. This can be hand corrected to -melf (or removed) for
a correct invocation.
On OpenServer release 5.0.4, be careful when invoking gcc as a
linker if you use gcc specific flags. Be especially careful with
mixing gcc specific flags when using the -s option. This can cause the
5.0.4 linker to core dump. For example, the command line
gcc -m486 -fomit-frame-pointer -Wall -s -o foo *.o
is bad, whereas the command line
gcc -s -o foo *.o
works. The gcc specific flags -fomit-frame-pointer -Wall
(used only as an example here) confuse the 5.0.4 linker.
Generic Infomation
For the UnixWare compiler (and the OpenServer compiler in ELF mode),
there are a few switches which developers may be interested in. All of
these switches are covered in the GCC documentation, this is just a brief
summary:
- -fPIC - generate position independent code. This is used when
creating shared libraries.
- -shared - used during linking. This will create a shared library.
For example, the command gcc -shared -o libfoo.so *.o will link
in all of the object files in the currently directory and correctly construct
a shared library called libfoo.so. When using this option, you
may want to check the man pages on ld for the usage of the -h
and -Bexport options. NOTE: in order to pass the -Bexport
flag to the linker, you need to invoke gcc with gcc -Wl,-Bexport.
This is because the -B flag has special significance to gcc. The
-Wl flag is used to pass arguments to the linker. Consult the
gcc documentation for further details.
- -m486 - turn on 486 specific optimizations. This option will produce
code which can take advantage of specific 486 instructions, and which result
in a code speed increase on 486 and later processors.
On original 386 processors,
there is a very negligible speed decrease. The code generated will still
function properly on the 386.
More information and commonly asked questions about use of this compiler
on SCO platforms can be found in the
SCO Programmers FAQ
GNU Debugger
The GNU debugger is a source-level symbolic debugger. On Open Server,
it can debug both ELF and COFF binaries from within the same executable,
the file formats are automatically recognized. This is a very powerful
debugger, and has many friendly interfaces (coming soon to Skunkware On-line),
such as xxgdb, mxgdb and of course the interfaces provided by X-Emacs and
GNU Emacs.
As with most GNU software, GDB comes with complete Texinfo documentation.
If you have installed the Texinfo package, you can view the documentation
by executing the command info -f /usr/local/info/gdb.info.gz.
ftp://ftp2.sco.com/skunkware/uw7/devtools/
ftp://ftp2.sco.com/skunkware/osr5/devtools/
ftp://prep.ai.mit.edu/pub/gnu/
aalib - ascii graphics library
aalib is a really amazing ascii graphics library. There's a cool demo
with synchronized audio called
bb.
ftp://ftp2.sco.com/skunkware/uw7/libraries/aalib/
ftp://ftp2.sco.com/skunkware/osr5/libraries/aalib/
ftp://ftp.ta.jcu.cz/pub/aa/aalib-1.2.tar.gz
http://horac.ta.jcu.cz/aa/aalib/
GNU autoconf
GNU autoconf is a set of M4 macros and various shell scripts which
allow a developer to generate the famous "configure" scripts which
most programs use these days. This package requires that you install
the GNU m4 macro package, which is also to be found under the
Shell Utilities section of Skunkware.
ftp://ftp2.sco.com/skunkware/uw7/devtools/autoconf/
ftp://ftp2.sco.com/skunkware/osr5/devtools/autoconf/
ftp://prep.ai.mit.edu/pub/gnu/
GNU Development Tools
GNU binutils contains various GNU compilers, assemblers, linkers,
debuggers, etc., plus their support routines, definitions, and documentation.
In particular, the GNU binutils is often installed in order to take advantage
of the GNU assembler, /usr/local/bin/as.
ftp://ftp2.sco.com/skunkware/uw7/devtools/binutils/
ftp://ftp2.sco.com/skunkware/osr5/devtools/binutils/
ftp://prep.ai.mit.edu/pub/gnu/
GNU Project parser generator
Bison is a parser generator in the style of yacc(1). It
should be upwardly compatible with input files designed for yacc.
Input files should follow the yacc convention of ending in
.y. Unlike yacc, the generated files do not have fixed
names, but instead use the prefix of the input file. For
instance, a grammar description file named parse.y would
produce the generated parser in a file named parse.tab.c,
instead of yacc's y.tab.c.
ftp://ftp2.sco.com/skunkware/uw7/devtools/bison/
ftp://ftp2.sco.com/skunkware/osr5/devtools/bison/
ftp://prep.ai.mit.edu/pub/gnu/
fast lexical analyzer generator
flex is a tool for generating scanners: programs which
recognize lexical patterns in text. flex reads the given
input files, or its standard input if no file names are
given, for a description of a scanner to generate. The
description is in the form of pairs of regular expressions
and C code, called rules. flex generates as output a C
source file, lex.yy.c, which defines a routine yylex(). This
file is compiled and linked with the -lfl library to produce
an executable. When the executable is run, it analyzes its
input for occurrences of the regular expressions. Whenever
it finds one, it executes the corresponding C code.
ftp://ftp2.sco.com/skunkware/uw7/devtools/flex/
ftp://ftp2.sco.com/skunkware/osr5/devtools/flex/
ftp://prep.ai.mit.edu/pub/gnu/
Cdrecord - create audio & data CD's
Cdrecord is used to record data or audio Compact Discs on an
Orange Book CD-Recorder.
Some SCO specific notes are available via
ftp://ftp2.sco.com/skunkware/cdrecord/SCO-NOTES.html.
uw7/fileutil/cdrecord/
osr5/fileutil/cdrecord/
ftp://ftp.fokus.gmd.de/pub/1/cdrecord/
http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html
Data Display Debugger
DDD can do four main kinds of things (plus other things in
support of these) to help you catch bugs in the act:
- Start your program, specifying anything that might
affect its behavior.
- Make your program stop on specified conditions.
- Examine what has happened, when your program has
stopped.
- Change things in your program, so you can experiment
with correcting the effects of one bug and go on to
learn about another.
"Classical" UNIX debuggers such as the GNU debugger (GDB)
provide a command-line interface and a multitude of com-
mands for these and other debugging purposes. DDD is a
comfortable graphical user interface around an inferior
GDB, DBX, XDB, JDB, PYDB, or Perl debugger.
uw7/devtools/ddd/
osr5/devtools/ddd/
ftp://ftp.ips.cs.tu-bs.de/pub/local/softech/ddd/
http://www.cs.tu-bs.de/softech/ddd/
GNU test framework
DejaGnu is a framework for testing other programs. Its purpose is to
provide a single front end for all tests. Beyond this, DejaGnu offers
several advantages for testing:
- The flexibility and consistency of the DejaGnu framework
make it easy to write tests for any program.
- DejaGnu provides a layer of abstraction which makes all
tests (if correctly written) portable to any host or target
where a program must be tested. For instance, a test for
GDB can run (from any Unix based host) on any target
architecture supported by DejaGnu. Currently DejaGnu runs
tests on several single board computers, whose operating
software ranges from just a boot monitor to a full-fledged,
Unix-like realtime OS.
- DejaGnu is written in expect, which in turn uses Tcl
(Tool command language). The framework comprises two parts:
the testing framework and the testsuites themselves. Tests
are usually written in expect using Tcl.
ftp://ftp2.sco.com/skunkware/uw7/devtools/dejagnu/
ftp://ftp2.sco.com/skunkware/osr5/devtools/dejagnu/
ftp://ftp.cygnus.com/pub/dejagnu/
Erlang Programming Language
uw7/devtools/erlang/
http://www.erlang.org/download.html
http://www.erlang.org
Erlang is a programming language which has many features more commonly
associated with an operating system than with a programming language: concurrent
processes, scheduling, memory management, distribution, networking, etc.
The initial open-source Erlang
release contains the implementation of
Erlang, as well as a large part of Ericsson's middleware
for building distributed high-availability systems.
Erlang is characterized by the following features:
Concurrency - Erlang has extremely lightweight processes whose
memory requirements can vary dynamically. Processes have no shared memory
and communicate by asynchronous message passing. Erlang supports applications
with very large numbers of concurrent processes. No requirements for concurrency
are placed on the host operating system.
Distribution - Erlang is designed to be run in a distributed
environment. An Erlang virtual machine is called an Erlang node. A distributed
Erlang system is a network of Erlang nodes (typically one per processor).
An Erlang node can create parallel processes running on other nodes, which
perhaps use other operating systems. Processes residing on different nodes
communicate in exactly the same was as processes residing on the same node.
Robustness - Erlang has various error detection primitives which
can be used to structure fault-tolerant systems. For example,
processes can monitor the status and activities of other processes,
even if these processes are executing on other nodes. Processes in a distributed
system can be configured to fail-over to other nodes in case of failures
and automatically migrate back to recovered nodes.
Soft real-time - Erlang supports programming "soft" real-time
systems, which require response times in the order of milliseconds. Long
garbage collection delays in such systems are unacceptable, so Erlang uses
incremental garbage collection techniques.
Hot code upgrade - Many systems cannot be stopped for software
maintenance. Erlang allows program code to be changed in a running system.
Old code can be phased out and replaced by new code. During the transition,
both old code and new code can coexist. It is thus possible to install
bug fixes and upgrades in a running system without disturbing its operation.
Incremental code loading - Users can control in detail how code
is loaded. In embedded systems, all code is usually loaded at boot time.
In development systems, code is loaded when it is needed, even when the
system is running. If testing uncovers bugs, only the buggy code need
be replaced.
External interfaces - Erlang processes communicate with the outside
world using the same message passing mechanism as used between Erlang processes.
This mechanism is used for communication
with the host operating system and for interaction with programs written
in other languages. If required for reasons of efficiency, a special version
of this concept allows e.g. C programs to be directly linked into the Erlang
runtime system.
Components
Open-source Erlang comes with several standalone components that can be
used as building blocks when developing applications. These components
understands Erlang's systems messages (load, unload, start, stop, restart,
change code).
Inets - HTTP 1.0 server and FTP client.
Mnesia - Distributed real-time database for Erlang. Supports
RAM-replication as well as disk storage, allows dynamic schema changes,
allows arbitrarily complex data structures to be stored. Mnesia is very
fast since it runs in the same address space as the applications that use
it - this is possible since both Mnesia and the applications are written
in Erlang. Mnesia is a nice example of the power of Erlang: in how
many languages could you write a fully-featured industrial-strength distributed
DBMS in less than 20,000 lines of code?
Orber - CORBA v2.0 Object Request Broker (ORB).
SNMP - Extensible SNMP v1/v2 agent and MIB compiler.
Tools and Libraries
Open-source Erlang comes with a library of useful tools:
Appmon - Graphical monitoring of process groups (locally and
on remote nodes).
ASN.1 - Compile-time and runtime package which supports the
ASN.1 Basic Notation and the encoding rules BER and PER.
Compiler - Erlang compiler.
Debugger - Graphical Erlang debugger.
ERTS - Erlang runtime system, including the virtual machine,
the garbage collector, and the port mapper daemon.
GS - Library for writing graphical user interfaces.
IC - Compiler from OMG's Interface Definition Language (IDL)
to Erlang and C.
Jive - Support for calling Java from Erlang and vice versa.
Kernel - C code necessary to run the Erlang system: Erlang built-in
functions (BIFs); code, boot and name servers; networking and distribution
support; loaders, linkers and loggers; OS and file system interfaces.
MESH - Measurement handling, including an SNMP MIB.
Mnemosyne - Optional query language for Mnesia.
Mnesia Session - Foreign languages interface to Mnesia defined
in IDL, providing Mnesia access via the IIOP and erl_interface protocols.
OS monitor (OS_MON) - Monitoring of CPU, disk and memory utilization,
including SNMP v1/v2 MIBs. Interfaces to Solaris syslogd and Windows
NT event log.
Parse tools - LALR-1 parser generator for Erlang (yecc), similar
to yacc. Yecc takes a BNF grammar definition as input, and produces Erlang
code for a parser as output. Yecc is used to generate the Erlang parser.
PMan - Tool for tracing and viewing the state of Erlang processes
(locally or on remote nodes).
SASL - Progress/error/crash report handling, report browsing,
release handling, overload regulation.
Stdlib - Libraries for: input/output; incore and disk-based table
storage (ETS and DETS); graphs, dictionaries, lists, strings, sets, queues;
regular expressions; math. Erlang interpreter, tokenizer, parser, lint
and pretty-printer. Generic frameworks for fault-tolerant servers, event
handlers, state machines, and process supervisors. Etc, etc.
Table visualizer - Tool for viewing ETS and Mnesia tables.
Toolbar - Simplifies access to the Erlang Tools.
Tools - Coverage analyser, profiler, text-based tracer, Emacs
mode, Emacs TAGS file generator, make utility, call graph utility.
Xref - Provides statistics on cross referencing between modules
and functions.
command-line editing library with history
The getline package is a set of library routines that implement
an editable command-line history. Getline is GNU Readline compatible
but a lot smaller.
ftp://ftp2.sco.com/skunkware/osr5/devtools/
ftp://ftp2.sco.com/skunkware/uw7/lib/
ftp://ftp2.sco.com/skunkware/src/lib/
SCO UnixWare 7 Help API
The UW7 Skunkware team is very proud to be able to bring to you
the public release of the SCO UnixWare 7 Help API.
The SCO UW7 Help API provides a low-level
context-sensitive help api for use with the SCO UW7 ScoHelp system. X11
graphical clients wishing to provide context-sensitive help via the ScoHelp
facility can utilize the SCO Help API contained herein.
The callable low-level scohelp api enables other Motif
applications to act as scohelp "clients", thus allowing requests to
be made of scohelp to display specific topics. Topics can be either
"hard coded" using the actual topic name, or can be a "widget tree" name.
"Widget tree" names are intended to be used by a higher level api; the
direct user of the low-level api will use only "hard coded" topic names.
SCO UW7 Skunkware Help Api (helpapi package) contains the following files:
/usr/X11R6.1/include/X11/scohelp/api.h
(Help Api header file)
/usr/X11R6.1/lib/libhelp.so
(link to libhelp.so.1.0)
/usr/lib/scohelp/en_US.ISO8859-1/SDK_helpapi/
(Help Api Documentation)
/usr/lib/helpapi_example/api_test.c
(example C file)
/usr/lib/helpapi_example/api_test.mk
(example MAKE file)
/usr/lib/scohelp/hooks/api_book.hk
(example hook file)
/usr/lib/scohelp/en_US.ISO8859-1/api_book/
(example help documents)
Please use pkgadd to install helpapi.pkg
To build the example program (make sure the udk package has been installed):
mkdir $HOME/api_test
cd $HOME/api_test
cp /usr/lib/helpapi_example/ .
make -f api_test.mk
You can then run the example program api_test. From the api_test window,
pressing F1 key or clicking on any item on the Help menu will open a
netscape window which displays the corresponding example help document.
Note that if your system is using a Documentation Server other than
localhost, you will need to install the example documentation on the
Documentation Server.
Please view the SCO UW7 Help Api Documentation from scohelp for
additional details after you install the Help Api on your system.
You may want to run /usr/man/bin/config_search -f to help you with
finding the Help Api pages by scohelp searching.
uw7/libraries/helpapi/
http://doc.sco.com
BeOpen.com InfoDock - Integrated Software Development Toolset
BeOpen.com InfoDock is an Integrated Software Development Toolset based upon
the XEmacs text editor but with a more powerful and commercially oriented
user interface and feature set. It is part of BeOpen.com's Open Source
Software product set.
Features of InfoDock include:
- dozens of carefully designed menubars tailored to the large variety of
supported editing and browsing modes (covers most major languages in use
today);
- attractive, cleanly blended window colors that support the use of either
dark or light window backgrounds;
- smart, automatic point-and-click hyperlinks in files: e.g. jump
to an identifier definition, jump to the source line associated
with a build-time error, follow URLs, etc.;
- automatic file header insertion and standardized indenting of program
constructs;
- advanced, incremental source code coloring for most major programming
languages; and professional object-oriented code browsing with fast
queries for all major object-oriented languages.
- powerful e-mail, NetNews and file management facilities.
InfoDock comes bundled together with Hyperbole (an everyday,
net-centric hypertextual information manager) and the
OO-Browser (a fast flexible object-oriented code browser that supports
all languages). BeOpen.com also provides high-quality support,
updates, training and printed documentation for these and other
Open Source products.
(XEmacs is a powerful, extensible text editor with full GUI support.
XEmacs descends from the Free Software Foundation's Emacs editor but
has many additional features and is maintained separately.
BeOpen.com can also provide commercial support for XEmacs or Emacs.)
ftp://ftp2.sco.com/skunkware/uw7/devtools/infodock/
http://www.beopen.com/products/products.html
http://www.BeOpen.com
convert NASM/MASM to GAS
Intel2GAS is a converter that will convert assembler source files written
for NASM to files that can
be assembled using the GNU Assembler (GAS), on the 1 platform.
It provides support for basic MMX instructions as well.
This converter was written for the Hermes project and is now released
to the general public. The code inside this converter is extremely flexible,
you can
write a syntax file to convert between any two assembler languages
Features:
-
Basic opcodes are done
-
MMX/FPU support (converts all Hermes files :)
-
Preliminary Gas2Intel conversion
- Conversion from masm/tasm to gnu syntax
ftp://ftp2.sco.com/skunkware/uw7/devtools/intel2gas/
http://www.niksula.cs.hut.fi/~mtiihone/intel2gas/
http://www.niksula.cs.hut.fi/~mtiihone/intel2gas/
The K Desktop Integrated Development Environment
ftp://ftp2.sco.com/skunkware/osr5/x11/winman/kde/
ftp://ftp2.sco.com/skunkware/uw7/x11/winman/kde/
http://www.kde.org/
http://www.kde.org/
KDE is an elegant and rich graphical desktop. To try it out, add the
following to your $HOME/.profile:
PATH=$PATH:/usr/local/bin:/usr/local/kde/bin:.
KDEDIR=/usr/local/kde
export KDEDIR PATH
and create/modify $HOME/.xinitrc such that "startkde" is the last command.
Login on an ansi console screen and type "startx".
Alternately, you can configure your system to use the KDE graphical login
manager by following the instructions in the file
/usr/local/kde/share/config/xdm-setup-uw7.README
KDE 1.1.2 packages are available for both SCO OpenServer and UnixWare 7
in formats suitable for installation with the SCO Software Manager.
On SCO OpenServer, i have provided a complete custom installable media images.
You can download the KDE package:
kde-1.1.2-VOLS.tar(29323264 bytes)
Prior to installing the KDE package on OpenServer, you must have installed
the following:
For UnixWare 7, i have provided a complete pkgadd installable datastream.
You can download the whole package:
kde-1.1.2.pkg
(67909120 bytes)
On UnixWare 7, prior to installing the KDE package, you must have installed
the following:
Both the OpenServer and UnixWare 7 releases of KDE 1.1.2 contain alternate
kpanel binaries and configuration files. These are tailored for use in
environments where KDE is pushed out to thin clients from SCO servers.
Often in this situation the thin clients will utilize a local window manager
to reduce network traffic. It's also common that these clients will be diskless
and/or wireless. For these reasons, the kpanel functionality has been
configured alternately for use with thin clients. To use the thin client
kpanel, simply replace the /usr/local/kde/bin/kpanel binary with
/usr/local/kde/bin/kpanel_nc and /usr/local/kde/share/config/kpanelrc with
/usr/local/kde/share/config/kpanelrc_nc. You will also need to add appropriate
lines to /usr/local/kde/bin/nc_logout to logout a thin client user.
KDevelop
KDevelop, an easy to use IDE (Integrated Development Enviroment) for Unix/X11,
is now available for UnixWare 7. Download the pkgadd installable datastream
via
ftp://ftp2.sco.com/skunkware/uw7/devtools/kdevelop/. In addition to KDE
1.1.2 and dependencies (see above) you will need
GNU Make and
GNU Automake.
The SCO OpenServer distribution of KDE 1.1.2 contains KDevelop as well. In order
to use KDevelop you will need the OpenServer versions of
GNU Make and
GNU Automake.
Petr Sorfa has written an excellent
introductory tutorial to KDevelop.
This has been translated into
Japanese.
To use KDevelop, make sure you are using GNU make and have all the various
bits installed. GNU make should be located in /usr/local/bin and
called "make". It may also be called "gmake". You may wish to place
/usr/local/bin first in your execution path. Bourn and Korn shell users
can do something like the following in their $HOME/.profile
PATH=/usr/local/bin:$PATH
export PATH
Install the following packages:
GNU Make
gawk
m4 1.4
gettxt 0.10
perl 5.04
qt1.44 (not QT 2.0)
gdb
flex
gcc
And, optionally,
texinfo-3.11
xpm-3.4
sgmltools (sgml2html)
ftp://ftp2.sco.com/skunkware/osr5/x11/winman/kde/
ftp://ftp2.sco.com/skunkware/uw7/x11/winman/kde/
http://www.kde.org/
http://www.kde.org/
a generic library support script
GNU libtool is a generic library support script. Libtool hides the complexity
of using shared and static libraries behind a consistent, portable interface.
In the past, if a source code package developer wanted to take advantage of
the power of shared libraries, she needed to write custom support code for each
platform on which hir package ran. She also had to design a configuration
interface so that the package installer could choose what sort of libraries
were built.
GNU Libtool simplifies the developer's job by encapsulating both the
platform-specific dependencies, and the user interface, in a single script.
GNU Libtool is designed so that the complete functionality of each host
type is available via a generic interface, but nasty quirks are hidden from
the programmer.
GNU Libtool's consistent interface is reassuring... users don't need to read
obscure documentation in order to have their favorite source package build
shared libraries. They just run your package configure script (or equivalent),
and libtool does all the dirty work
ftp://ftp2.sco.com/skunkware/osr5/devtools/libtool/
ftp://ftp2.sco.com/skunkware/uw7/devtools/libtool/
ftp://ftp.gnu.org/gnu/libtool/
http://www.gnu.org/software/libtool/
GNU Make
GNU make is a replacement for the standard development system make.
It has many advantages over the standard make. Firstly, it has a much
saner set of default compile rules. Secondly, it has very good conditional
compilation support. Thirdly, it is much more verbose in the actions it
performs, and gives the user a lot of useful information. This is a fine
replacement for the standard system make, and is 100% compatible with
all existing make files.
ftp://ftp2.sco.com/skunkware/uw7/devtools/make/
ftp://ftp2.sco.com/skunkware/osr5/devtools/make/
ftp://prep.ai.mit.edu/pub/gnu/
Pkgadd/pkgmk and family
The OpenServer release of the standard UnixWare packaging tools. Useful in
preparing distributions built with the UDK for subsequent installation on
either OpenServer or UnixWare.
ftp://ftp2.sco.com/skunkware/osr5/sysadmin/pkgtools/
ftp://ftp2.sco.com/skunkware/src/sysadmin/
Posix Threads
Pthreads is a prototype implementation of POSIX 1003.4a, Draft 6. It
is a C-language library that supports multiple threads of control
within a single process.
This library was developed to support the PART Ada runtime System
(RTS). As such, it does not implement the entire Pthreads interface.
It runs on a SPARCstation under the SunOS operating system, and its
use on that platform will also be non-compliant since the bulk of the
POSIX 1003.1 base standard and POSIX 1003.4 Real-Time Extensions to
which Pthreads is an extension will not be available. The Pthreads
library does provide some of the capability of these other standards.
papers:
WWW USA: http://www.cs.fsu.edu/~mueller/pthreads
WWW Europe: http://www.informatik.hu-berlin.de/~mueller/pthreads
ftp-site: ftp.cs.fsu.edu/pub/PART/publications
files: pthreads_serf92.ps.Z, pthreads_usenix93.ps.Z,
pthreads_interface.ps.Z, rtoss94.ps.Z, pthreads_tr94-091.ps.Z
mail-list: mueller@informatik.hu-berlin.de Subject: subscribe-pthreads
WWW USA : http://www.cs.fsu.edu/~mueller/projects.html
WWW Europe: http://www.informatik.hu-berlin.de/~mueller/projects.html
ftp://ftp2.sco.com/skunkware/osr5/libraries/pthreads/
ftp://ftp.cs.fsu.edu/pub/PART/PTHREADS
http://www.cs.fsu.edu/~mueller/projects.html
Troll Tech QT Widget Set
Qt is a GUI software toolkit. Qt simplifies the task of writing and
maintaining GUI (graphical user interface) applications.
Qt is written in C++ and is fully object-oriented. It has everything you
need to create professional GUI applications.
And it enables you to create them quickly.
Qt is a multi-platform toolkit. When developing software with Qt, you can
run it on the X Window System (Unix/X11)
or Microsoft Windows NT and Windows 95/98. Simply recompile your source
code on the platform you want.
Qt cuts down the complexity in implementing large and complex systems. Its
ingenious signal-slot technology enables true component programming.
osr5/libraries/qt/
uw7/libraries/qt/
ftp://ftp.troll.no/qt/source/
http://www.troll.no
GNU Readline Library
The GNU Readline Library is a facility which aids in the consistency of
user interface across discrete programs that need to provide a command
line interface.
readline will read a line from the terminal and return it.
The line returned is allocated with malloc(3), so
the caller must free it when finished. The line returned
has the final newline removed, so only the text of the line
remains.
readline offers editing capabilities while the user is
entering the line. By default, the line editing commands
are similar to those of emacs. A vi-style line editing
interface is also available.
ftp://ftp2.sco.com/skunkware/osr5/devtools/readline/
ftp://ftp2.sco.com/skunkware/uw7/lib/readline/
ftp://prep.ai.mit.edu:/pub/gnu
GNU revision control system
RCS is a set of tools for source code / version control. RCS is
more powerful than SCCS, and easier to use. RCS is required if you wish
to use the CVS package (see below).
If you have installed perl, RCS is also able to convert existing
SCCS databases into RCS format.
ftp://ftp2.sco.com/skunkware/uw7/devtools/rcs/
ftp://ftp2.sco.com/skunkware/osr5/devtools/rcs/
ftp://prep.ai.mit.edu/pub/gnu/
GNU concurrent version system
CVS, which works in conjunction with RCS, is a tools which allows
multiple developers to be working on the same source code at the
same time. RCS itself only allows a single developer to have a file
locked for editing. CVS is designed to allow more than one developer
to edit a source file. When multiple developers check in source
files, CVS does conflict checking very well. CVS is one of the easiest,
most comprehensive version control systems available. This package
is highly recommended for any developer who has a version control
requirement.
ftp://ftp2.sco.com/skunkware/osr5/devtools/cvs/
ftp://ftp2.sco.com/skunkware/uw7/devtools/cvs/
ftp://prep.ai.mit.edu/pub/gnu/
GNU indent
Indent is a source re-formatting program. It can reformat any C or C++
source code according to almost any style you choose. It has a very large
set of options, and works extremely well. An ideal tool for reformatting
your code to look the way you want it to. This is especially useful if
you get code from external vendors or from the net, which doesn't conform
to the way you like your code to look.
ftp://ftp2.sco.com/skunkware/osr5/devtools/indent/
ftp://ftp2.sco.com/skunkware/uw7/devtools/indent/
ftp://prep.ai.mit.edu/pub/gnu/
NGS JavaScript Interpreter
The NGS JavaScript interpreter is an
independent implementation of the JavaScript language, developed by Netscape et al. This implementation is designed
to be re-entrant, extendible, fast, and programmable.
uw7/net/js/
http://www.ngs.fi/js/
http://www.ngs.fi/js/
Packaging front-ends
mkpkg - front-ends to assist in the creation of pkgadd installable packages.
Written by Ronald Joe Record (rr@ronrecord.com)
The mkpkg front-end attempts to ease the pain of creating a package
suitable for installation with the pkgadd tools. The easiest way to use
these front-ends is to first create a gzip'd tar archive of the distribution
files. That is, as root and with the proper permissions/ownership set on
the files you want to package :
cd /
tar cfF - /tmp/filelist | gzip -9 > /.../dist/foo-1.0-dist.tar.gz
In the example command above, i am using /tmp/filelist as a file which contains
a list of all the files you want to distribute and i'm creating the gzip'd
tar archive foo-1.0-dist.tar.gz (for the example product foo, release 1.0).
Note that the location of the distribution archive is important. In the
example i have placed it in /home/ftp/pub/uw7/dist. By default, that's
where the dist2pkg script looks for distribution archives. You can set
this location by editing dist2pkg.
Once the distribution file is in place, you can then run the dist2pkg script.
This script front-ends the chkdist and mkpkg scripts. The first time you
run dist2pkg you needn't provide any options. It will extract your archive,
generate a prototype file based on the permissions and ownership you gave,
and eventually run pkgmk and pkgtrans.
There appears to be a bug in the packaging tools such that a symbolic link
something like foo.so -> foo.so.1.0 doesn't get created properly. To help
me find these types of symlinks, i run the chkproto command which spits out
a list of prototype files that might have this problem. I hand edit those
files changing any occurrence of a relative symlink to an absolute symlink.
For instance, i might change the above to foo.so -> /usr/local/lib/foo.so.1.0
If you have any questions or suggestions, e-mail rr@ronrecord.com
ftp://ftp2.sco.com/skunkware/uw7/devtools/mkpkg/
ftp://ftp2.sco.com/skunkware/osr5/devtools/mkpkg/
ftp://ftp2.sco.com/skunkware/src/devtools/
Packaging front-ends
mkvol - front-ends to assist in the creation of custom installable packages.
Written by Ronald Joe Record (rr@ronrecord.com)
The mkvol front-end attempts to ease the pain of creating a package
suitable for installation with the Software Manager on OpenServer (/etc/custom).
The easiest way to use these front-ends is to first create a gzip'd tar archive
of the distribution files. That is, as root and with the proper
permissions/ownership set on the files you want to package :
cd /
tar cfF - /tmp/filelist | gzip -9 > /.../dist/foo-1.0-dist.tar.gz
In the example command above, i am using /tmp/filelist as a file which contains
a list of all the files you want to distribute and i'm creating the gzip'd
tar archive foo-1.0-dist.tar.gz (for the example product foo, release 1.0).
Once the distribution archive is created, simply extract this into an empty
directory and, in that directory, run the command:
# mkvol -c COMPONENT_NAME -r RELEASE
where COMPONENT_NAME is the name you wish to give the component and RELEASE
is the release number.
You will now need to edit the CDMT input files in the input subdirectory.
Usually i give the component a better description and fix up any errors in
the *.pkg input file. Typically these have to do with what gets exported where
and incorrect symbolic links, etc.
Once this process is completed, you can then run the script MakeSSO which
will create the media images. The component can then be installed by running
the Install script. The scripts are setup to create components of the SKUNK98
product.
If you have any questions or suggestions, e-mail rr@ronrecord.com
ftp://ftp2.sco.com/skunkware/osr5/devtools/mkvol/
ftp://ftp2.sco.com/skunkware/src/devtools/
GNU patch
GNU patch is the latest version of Larry Wall's famous patch
utility. Many source code products ship "patches", and you apply those
patches with this program. In this version, there is a slightly
different behavior with the -p option. If you see instructions
in a patch file to run with the -p option, and there is no
number following the -p, then you should use -p0
instead. This behavior is different from previous versions of the
patch program.
ftp://ftp2.sco.com/skunkware/osr5/devtools/patch/
ftp://ftp2.sco.com/skunkware/uw2/devtools/patch/
ftp://prep.ai.mit.edu/pub/gnu/
Graphics Libraries
Many of the SCO Skunkware graphics utilities require the installation
of several dynamically loaded shared graphics libraries. These include
support for the JPEG, TIFF, XPM, Mesa3D, PNG and other graphical file formats.
The versions of the various libraries included in the Skunkware Glib package
are as follows:
ftp://ftp2.sco.com/skunkware/uw7/libraries/
ftp://ftp2.sco.com/skunkware/osr5/libraries/Glib/
ftp://ftp2.sco.com/skunkware/src/libraries/
PERL scripting language
PERL is a scripting language in use in many sites today. It combines
the best features of sed, awk, shell scripts and even a little BASIC.
It is commonly used for administrative tasks, and for WWW CGI scripts.
Many tools depend on perl, and no system is complete without it.
This page provides links to Perl 5 binary distributions for SCO platforms
and the Perl source archive as well as
more info on Perl 5.
In addition to the custom installable Perl 5.004_04 for OpenServer 5 on
Skunkware 98, there is a gzip'd tar archive of
Perl 5.005
pre-compiled for use on SCO OpenServer 5. Manual installation of this
release of Perl can be accomplished by issuing the following commands (as root):
# cd /
# gzcat /path/to/perl/perl-5.005.tar.gz | tar xf -
ftp://ftp2.sco.com/skunkware/osr5/interp/perl/
ftp://ftp2.sco.com/skunkware/uw7/interp/perl/
ftp://prep.ai.mit.edu/pub/gnu/
SGI Standard Template Library
ftp://ftp2.sco.com/skunkware/uw7/devtools/stl/
ftp://ftp2.sco.com/skunkware/uw7/devtools/stl/
http://www.sgi.com/Technology/STL/
http://www.sgi.com/Technology/STL/
Note:
This package is no longer necessary for SCO OpenServer 5.0.5, 5.0.6
and UnixWare 7.1.1 or later releases as the new UDK 7.1.1b Feature
Supplement (available at
http://www.sco.com/download/)
contains a complete implementation of STL and the rest of the C++
standard library.
The Silicon Graphics STL 3.11 is a freeware implementation of the
new C++ Standard Template Library, with a few other parts of the new
ANSI/ISO C++ standard library also included (string, bitset, auto_ptr).
It is available from
http://www.sgi.com/Technology/STL/
and is the best source of C++ standard library classes until such
time as SCO bundles a full C++ standard library implementation with
its C++ compiler.
This distribution includes the full SGI STL 3.11 release together
with a set of changes to make it work on SCO platforms. In cases
where SGI files have been modified, the original is preserved with
an ..orig suffix.
The SGI site mentioned above has a full set of functional documentation
on the SGI STL; it is also included in this distribution. Start at
file://localhost/usr/local/man/html/stl/index.html.
In order to use the SGI STL 3.11 on SCO platforms (UW7, UW2, OSR5)
you must use the UDK C++ compiler, version 7.0 or later. You cannot
use the older SDK C++ compilers on either UW2 or OSR5.
To compile the SGI STL 3.11 with the UDK compiler, simply do
$ CC -I/usr/local/include/stl ...
Note that the whole implementation is in header files, so there is
no library to build. Similarly, you shouldn't have to worry about
template instantiation issues; use of the default CC -Tauto option
should work well.
If you are using the STL in a multi-threaded environment, compile
with the CC -Kthread option, as usual. This will enable the POSIX
threads support in the SGI STL. Note however that currently POSIX
threads are only supported on UW 7.0.1 and up. Support has also been added
for UnixWare threads on pre-UW 7.0.1 platforms.
[The UW 7.0.1 upgrade can be downloaded free of charge from ftp.sco.com.]
These are the changes SCO has made for the SCO UDK C++ compiler
(all are based on the macro __USLC__ being defined, which the UDK CC
command does):
- stl_config.h
-
Set the appropriate C++ language defines for our EDG 2.35-based
compiler (also works for the EDG 2.39-based compiler in UW 7.1.0).
Enable _PTHREADS when CC -Kthread is active.
- stl_alloc.h
-
Work around a problem with the UDK compiler not accepting the
generalized _Alloc_traits::allocator_type declaration (due to
rebind weirdness). The work-around probably means that you
need to specialize _Alloc_traits if you want to use it, but
as is user-defined allocators seem to work.
- stl_config.h, stl_alloc.h, thread_alloc.h, thread_alloc
-
Add _THREADS for UnixWare-style threads support (contributed by
Jochen Schlick, schlick@comsoft.de).
- string
-
Add a cast to avoid an annoying warning.
- stl_list.h, stl_iterator.h, stl_map.h, stl_multimap.h, stl_multiset.h,
stl_queue.h, stl_set.h, stl_stack.h, string
-
All modified to conform to the SCO UDK compiler's interpretation
of template friends declarations.
- ropeimpl.h, stl_rope.h
-
Same as above, for the SGI extension rope class (also contributed by
Jochen Schlick).
Note: similar problems no doubt occur in the other SGI extension-
to-the-standard hash and slist classes. These have not been changed;
by looking at the changes for the above files, it should be clear how
to modify them if you are so interested.
Note that compiling the bitset class results in an internal compiler error
in the UW7 UDK compiler; this is fixed in the UW 7.0.1 C++ compiler.
There have also been an intermittent compiler internal error in compiling
STL member template declarations; this is fixed in the UW 7.1.0 C++ compiler,
and is also be available as
ptf7123a against UW 7.0.1.
There is no official support from SCO for these modifications, although
we are interested in hearing of any problems in using them and will
try to help out.
The following notice is reproduced from the SGI STL 3.11 distribution:
|