packages icon

                              PIKT README



Introduction

Please read the INSTALL file for instructions on how to build, install,
and configure PIKT for your system(s).

Thanks to Thomas Vander Stichele, we now have a Tutorial (doc/tutorial.txt).
Together with INSTALL, the Tutorial should get you up and running.

Refer also to the file doc/intro.txt for an introduction highlighting PIKT's
special features, and doc/ref.txt for a succinct PIKT reference manual.
Studying the files in the directory lib/configs_samples is particularly
useful for gaining a better understanding of PIKT.

Look, too, at the test config files (in src/test/lib/configs) for additional
informative examples.  You can learn a lot about the PIKT system by studying
how we conduct the validation tests.  (See the INSTALL file for more details.)

Although I put a lot of effort into making the Introduction, Reference
and other samples available on the PIKT Web site (pikt.uchicago.edu/pikt),
you really should refer to the text files locally after your initial exposure
to PIKT.  I don't have any documentation in PostScript yet, but printing
out the downloaded Web pages produces pretty nice results.

man and info pages, etc. will follow eventually.

I am also giving serious thought to writing a PIKT Operations Manual,
giving techniques, more thorough explanations, and insider PIKT tricks.
Much of this will be developed from material disseminated to the pikt-users
list.  I have begun posting this material on the User Contributions page at
the PIKT Web site (http://pikt.uchicago.edu/pikt/contrib/contributions.html).


Release Notes

In this its (more or less) twenty-fifth public release, the fourth
official release of 2001 (not counting all the "pre", beta releases), I
have stamped PIKT with the version number 1.14.0.  (When will 2.0 appear?
Maybe when we've got a GUI, or when I think improvements to the pikt script
interpreter merit the "2.0" tag.)

This release is a mixed bag of new ports, added features, and bug fixes.
Here are the most significant changes since 1.13.0:

--Ported to SCO OpenServer (thanks to Antoine Ameurlain) and Digital UNIX
  (thanks to Arto Selonen).
--Improved the coding of piktx (thanks to Michel Blanc).
--Added the 'pikt +C <cmd>' option.
--Added the #exec and #piktexec (also #pexec) preprocessor directives.
--Reworked parts of the script and config file lexers.
--Fixed several minor lexer and parser bugs.
--Improved the formatting of installed alarm scripts.
--Permitted the use of #ifdef, #setdef, #define, ... within defines.cfg.
--Fixed it so that doing a '#include "/dev/null" [<proc>]' won't clobber
  /dev/null.
--Fixed some security flaws in master-slave network communications.

See the NEWS file, also the Reference (doc/ref.txt) for more details.
(Look at the ChangeLog for the real gory details.)

A word of advice:  If you want to understand and employ some of the new
features, reading the Reference Manual is probably not enough.  You will
likely need to study the sample .cfg files for inspiration and guidance,
and reading about the new features in the NEWS file wouldn't hurt either.

Thanks to Antoine Ameurlain and Arto Selonen, PIKT has been ported to its
ninth (SCO OpenServer) and tenth (Digital UNIX) OSes.  Unfortunately, the
more supported OSes, the harder it is for the core development team to
have root-level access to every supported platform.  We ourselves cannot
do direct QA testing on some of the supported OSes.  We rely instead on
volunteers testing the many "pre" releases leading up to the "official"
release.  We have no reports of any problems, large or small, with the
SCO OpenServer and Digital UNIX ports, but as with all recent ports you
should probably proceed with caution.

Another consequence of our having sporadic, inconsistent root-level access
to machines running some of the supported OSes:  We will be posting fewer
pre-compiled, ready-to-run binary packages on the PIKT Software page.
Unless and until we (or someone we trust) assemble and post the missing
pikt-1.14.0_bin_*.tar.gz packages, you'll just have to do your own builds.
But you really should be doing that anyway.

About piktx:  This is still at the beta stage, still a work-in-progress.
piktx lacks some functionality and shows a few rough edges, but it is
making rapid advances now that Michel Blanc has taken over its maintenance.
Because piktx is a Perl script, many of you will be able to fix what needs
fixing (and submit patches?).  We anticipate obscure ssh problems, and we
still need to deal with the issue of timeouts, among others.  Look for
piktx in the bin directory (you might have to edit some program and other
paths), also in the configs_samples and configs_starter programs.cfg.
We will be posting patched versions of piktx in subsequent releases.

********************************* IMPORTANT **********************************
NOTE:  Beginning with 1.14.0, you may no longer insert whitespace between
an array name and opening left bracket, or a function name and opening left
parenthesis.  (That is, you may no longer do this:  $foo [ ... ]  Or this:
#mean ( ... ) )  Pikt scripts in .alt files were installed with this extra
whitespace added by default.  Also, we have given up trying to support double
quotes embedded within double-quoted strings.  You should use $char(34) and the
concatenation operator (.) instead, or perhaps some combination of double
quote inside a single-quoted string, or vice versa.  Because of these changes,
you will likely have to tweak some of your Pikt scripts in alarms.cfg and
programs.cfg, then reinstall using 'piktc -iv +A all +P all +H all'.  (The
installed scripts now dispense with the extra whitespace by default.)  Sorry
for the inconvenience!
********************************* IMPORTANT **********************************

********************************* IMPORTANT **********************************
If you are upgrading from PIKT 1.9.x or before, you should know that a
revision to the history mechanism in 1.10.x and later broke backward
compatibility with earlier *.hst files.  If you install this latest release,
you must first rm *.hst all of your 1.9.x and older history files!
********************************* IMPORTANT **********************************

In the months ahead, work will continue on the PIKT GUI(s), security
enhancements, improving ease of use, and several other projects.

********************************** NOTICE ************************************
Finally, we have teamed up with the Open Channel Foundation (OCS)
(http://www.openchannelsoftware.com) to improve PIKT in various ways.

It's trite but true:  So many things to do, so little time!

As you might know,  we have a long, and ever-growing, PIKT TODO list.  But
members of the PIKT development team all have day jobs, and given the
uncertain help of unpaid volunteers (pikt-workers), some very worthwhile
things just never get done.

By now, it's become clear that the only way many of those things will ever
get done is to commercialize PIKT in some fashion.  Open Channel Software
has a plan to make that and other good things happen.

You needn't worry, however:  What I call "core PIKT" will always remain
freely available and firmly GPLed (all parties agree to this, including
my employer, the University of Chicago).  I remain equally committed to
improving and extending "core PIKT".  (By "core PIKT," I mean the basic
program set--pikt, piktd, piktc, piktc_svc, pikts, and lately piktx--the
basic documentation, the basic sample configs, and everything else needed
to build, test, install, and configure PIKT--essentially everything available
in the standard PIKT tarball thus far.)

In order for OCS to gauge whether there is a market for PIKT "peripherals",
they need some hard facts.  This is where you might help.

Please visit

http://www.openchannelsoftware.com/view_article.php?news_article_id=28

and take the PIKT User Survey.

However you might respond to this, we appreciate your help, also your
continuing interest in PIKT!
********************************** NOTICE ************************************


Background

Work on PIKT began over four years ago.  The piktc and piktc_svc components
were developed first, with half the development done on a Solaris box and the
other half done at home on a Linux box.  Development of pikt and piktd
started about six months later.  Once I had something useful, development
work was done exclusively on a Solaris system (a SPARC 10 running Solaris
5.5), with the SunOS port kept equally current.  PIKT was put into production
use in October 1997 on about a dozen and a half Solaris and SunOS systems.
Linux development was set aside for the most part, but I did attempt to
bring the Linux port up to date every four months or so without putting it
into actual production use.

So, for well over three years now, we have been using PIKT, with a SPARC 10
running Solaris 5.5 playing the role of both development platform and
master control machine (this was replaced by a SPARC 20 running Solaris 5.7
and more recently by an Ultra 5 running Solaris 5.8),and with over 50 Solaris
systems, no more than half a dozen SunOS systems, and a handful of Linux
(and now AIX, HP-UX, and IRIX) systems serving as slaves.  PIKT is certainly
battle tested, but not invincible, as the BUGS and NEWS files make clear.


Looking Ahead

As you evaluate PIKT, remember that you can use the PIKT language as much
or as little as you like, substituting your preferred scripting language
where appropriate.  To me, the really nifty thing about PIKT is not so
much its script language as it is the script preprocessor and management
facilities--macros; version control (by means of #if <host|OS> and 
and #ifdef <define> directives); meta commenting; centralized editing,
scheduling, installation, and process control; comprehensive error logging;
etc.

There is another important thing to bear in mind.  I have made PIKT
to be as flexible as possible.  By design, most of the config files are
free-form.  With relaxation of the eight-config-file requirement, this
permits truncated PIKT setups using just the components you prefer or need.
The config file samples represent one view, my view, of how it all might be
put together.  It's not too hard envisioning macros and objects files being
done differently, or an entirely different way of handling config file
maintenance and autogeneration.  By all means, do things in the way that
suits you best!

As usual, many ideas for new PIKT scripts and data objects are swimming
around in my brain, but too few make it ashore.  One of these days/weeks/
months, someone will step forward, volunteering to head a PIKT security
project--a well-planned, full-featured security package utilizing PIKT and
best-of-breed security tools.

AN INVITATION:  If you would like to create such a package, or if you
would like to develop a PIKT GUI for managing incoming alert messages, we
invite you to join the PIKT development team.  Would-be porters to other
operating systems are also welcome to join.  We have the PIKT files on a
CVS server ready and waiting.

We have taken PIKT quite far for our purposes.  It has proven its usefulness,
and will do so even more as work on the standard library progresses.  Some
items mentioned in the TODO file (like the GUI alert interface) would be nice
additions, but they aren't really essential.  It will be interesting to see
what new features and improvements other users suggest.

By now, PIKT's outlines are pretty much settled.  I don't foresee
drastic changes being made to the script language (at the surface level),
or to the config file and management systems.  If PIKT changes beyond this
point, it will be by addition of new features, and by reworking of the
underlying plumbing.  (A project is underway to incorporate the GNU
extension language, Guile, into PIKT.  Join pikt-workers for info and
updates.)

If PIKT itself (not the alarm scripts and data files) is to improve
further, we need some critical reaction and broad user feedback.  Some
portions of the code are better than others, and a few things were done
by cookbook with sufficient but not deep understanding of the issues.

(This request is getting pretty stale, but I'll restate it anyway:  I will be
much obliged if someone can point me in the direction of a nice, freely usable
graphic showing, in order of my preference, an American Civil War/Napoleonic
Wars/WWII picket in action.  I've looked and looked for something suitable
but so far in vain.

I'm no graphics artist, obviously.  The PIKT Web pages and packaging could
stand some jazzing up!)

In short, PIKT is certainly far from perfect but headed in the right
direction, I think.  Whether PIKT continues to evolve and improve, a lot
depends on you, the users.  Let's hear from you!  JOIN THE PIKT-USERS
(and pikt-workers) MAILING LIST(s)!  

Robert Osterlund
Chicago
July 2001