Welcome to the scotty Tcl extension for network management
by Juergen Schoenwaelder and many contributors. Maintained by FlightAware LLC
You are looking at the source tree of scotty, a software package
which allows to build IPv4 network management applications using Tcl
and Tk. It consists of two Tcl extensions: Tnm and Tkined, two
scotty a Tcl interpreter with Tnm preloaded
tkined a interactive gui network diagramm editor and monitor.
scotty license terms can be found in
is essentially identical to the
The Tnm Tcl extension provides the following features:
- Access to Internet protocols: ICMP, DNS, UDP, SUN RPC, SNMP, NTP.
- Facilitates writing special purpose SNMP agents in Tcl and parse and access SNMP MIB definitions.
- Access the local network databases: hosts, networks, protocols, services, sunrpcs.
- Schedule jobs that are to be done regularly.
- Realize event driven programming on network maps.
- IP address and networks calculation.
- Write messages to the system logger.
tkined and the Tkined extension
tkined is a network editor which allows to draw maps showing your
network configuration. The most important feature of
tkined is its
programming interface which allows network management applications to
extend the capabilities of
tkined. scotty packages several
applications which allow for network autodetection, node monitoring,
geolocation and others.
About and Status
This source distribution is targetted at the current available (February 2017) toolchains and Tcl versions. The default is to build shared libraries with Tcl stubs support.
tkined is working fine on all tested platform, except for Debian
jessie 32 bit, where it hangs on the first invocation of
Scotty currently is only operating correctly on 32 bit platforms. There are several known bugs which surface when running on 64 bit.
Note that the organisation of the source tree has been modified heavily, to account for current policies of extension building. Each extension is given its own subdirectory, where they can be built independently.
Tnm tests have been updated and problems singled out and documented
tnm/TODO file. Running
make test should succeed without
failures, except DNS tests which depend on specific network setup and
availability and might fail on your site.
To distinguish this distribution clearly from others, the version numbers have been bumped to: Tnm 3.0.2 and Tkined 1.5.1, although (almost) no changes have been made to the individual software components.
Obtaining and Installing scotty
scotty is freely available in source form from several locations. The historical homepage does not exist anymore. FlightAware has done significant maintenance of the software. The FlightAware version is available from: https://github.com/flightaware/scotty
This particlar version, motivated by FlightAware, adapts the build system to recent versions of operating systems and Tcl/Tk versions and is available from: https://github.com/jorge-leon/scotty
Tested Operating Systems
- Debian GNU/Linux 7.11 (wheezy), 8.7 (jessie) *
- Ubuntu 16.10 (yakkety) *
- Alpine Linux (Note: temporarily unavailable)
- Slackware Linux 14.2
- FreeBSD 10.3 * and 11
- NetBSD 7.0.2
- MacOSX 10.10.5 (Yosemite)
- Oracle Solaris 11.3
Note: operating systems marked with an * have the best support and test coverage. See tnm/TODO and tkined/TODO for a list of known problems.
Tested Tcl/Tk Versions
- 8.5.11 (Debian wheezy)
- 8.5.17 (Debian jessie)
- 8.6.2 (Debian jessie)
- 8.6.4 (MacOSX)
- 8.6.5 (Slackware)
- 8.6.6 (FreeBSD, Ubuntu, Alpine, Solaris)
- Tcl/Tk development files.
- OS specific (libc) development files.
- C compiler:
- Clang on FreeBSD
- GNU Make
- PMake on FreeBSD
- GNU autoconf
- On Alpine Linux (musl libc):
- The libtirpc-dev package.
- pkg-config (to find libtirpc)
Obtain, Compile, Install
Clone the repository or download the source as zip archive and unpack to any destination directory of your liking.
There is a convenience Makefile in the top level directory, which
automates build, install and uninstall for the tested platforms. Just
make and it will help you. See the file PORTS for platform
The following are detailed build instructions.
tnm directory and run the almost common place:
./configure make sudo make install sudo make sinstall
Then enter the
tkined directory and run:
./configure make sudo make install
After this, you should be able to start
where 'x' is the respective sub sub version number and tkined as
OS X Install
The OS X configure commands most likely require --prefix=/usr/local and --exec-prefix=/usr/local options. OS X now prevents installation in /usr/lib and /usr/bin in the System Integrity Protection implementation. TEA trys to figure out the install paths from the TCL install. If you are using the OS X TCL, then these directories will not be writable.
You can uninstall the Tnm extension and
scotty by running
make uninstall in the
The Tkined extension and
tkined are uninstalled by running
make uninstall in the
Man files are installed in the respective system locations after
install. To see what is available see the respective
For a starter, look at Tnm(n) which gives an overview over the Tcl commands provided by the Tnm extension and the tkined(1) page which describes the Tkined network editor. A short description of the API which is used to write new applications for the Tkined editor is available in the ined(n) man page.
An overview about the Tnm extension has been presented at the 3rd Tcl/Tk workshop in 1995. A PostScript copy of this paper is available at http://www.ibr.cs.tu-bs.de/users/schoenw/papers/tcltk-95.ps.gz.
Some more general experience from doing this project over several years were presented at the 1st European Tcl/Tk User Meeting in 2000. A PostScript copy of this paper is also available at http://www.ibr.cs.tu-bs.de/users/schoenw/papers/tcltk-eu-2000.ps.gz
Mark Newnham has collected some information about scotty at his sourceforge project wiki: https://sourceforge.net/p/tkined-scotty/wiki/Home
The Tclers Wiki has some pages about scotty, here the link to the most informative: Tnm/Scotty/TkInEd.
The (almost) original README file can be found in the
directory. Original build/install was done inside the platform
specific directories, you will find a INSTALL instructions file in
The Tkined library and applications have their own change logs in
The file PORTS holds notes about building scotty on different
tkined/TODO list bugs and improvement
ideas for the respective extension, including platform specific ones.
Jürgen has listed meticulously all contributors and benefactors at
the end of the original
Lionel Sambuc has provided all needed bits to compile scotty on MINIX3.
tnm/changes scotty was released on 1993-07-19 as
version 0.5, this change log file reports until 2001-12-08.
In 2005 Jürgens seems to have imported the CVS repository to SVN at Jakobs University, with the last check in on 2010-09-07.
DavidMcNett at FlightAware imported scotty into GitHub, 'Initial import of sc-scotty from Karl' (Lehenbauer). Since then, there were small commits every one to two years on this repository.
Mark Newnham imported scotty to GitHub and then in 2015-03-14 to
sourceforge. He has mainly worked on the "Front End"
Upgraded to the latest TEA version and improvements in UDP and DNS 2017-02-14 by Georg Lehner email@example.com.
Ressources remaining from the founders time:
Mailing list archive at Braunschweig university.
Some pages on the Tclers Wiki, discussing the status at different points of time: