Product Name: juke Product Version: v5_0 Abstract The "juke" product is an extensible software package for interfacing with tape, CD, and other media jukeboxes, (however since it currently is used only for tape, media is referred to as tape throughout) This makes it ideal for controlling tape jukeboxes for data analysis, backups, etc. where tape mounts are needed at times when it is inconvenient for human operators to perform them, or for automated labeling of batches of tapes etc. The "juke" package supports controlling multiple jukeboxes per host, multiple hosts per jukebox, etc. with control being shared over a network. "juke" controls only the jukebox media handling mechanism itself, and not any media drives, etc. contained within the jukebox. It deals with multiple jukebox types by treating them all as having simple, abstract components; the tapes themselves, slots to hold the tapes, drives which can play, read, or write the tapes, and "mailbox slots" which can be uncovered for people to take tapes in and out of the jukebox, or covered for the jukebox to be able to manipulate the tapes. A lookup table of tapes is maintained, by a small dbm(3) database, however only 3 short interface routines need to be written to add in interface to an existing tape database. "juke" consists of 5 main binary deliverables, an RPC daemon process which actually controlls the jukebox, an interactive RPC client which allows command line interface to the control of the jukebox, an API library which provides program callable access to jukebox control, and 2 SCSI pass-through drivers, one for Sun Microsystems Solaris systems, and one for AIX 3.* systems. It also comes with an extensive user guide with numerous examples, and an API reference describing the library calls. "juke" is currently being used to control Summus, Exabyte, and DEC DLT media changers at Fermilab. Documentation: User documentation is found in "doc/jukeuser.latex" in the distribution, or via WWW at: http://www.fnal.gov/docs/products/juke Contents: A file list is in the file Manifest. Platforms: juke can currently run Exabyte and DEC tape robots of various sizes on systems with SCSI pass-through devices, and Summus Carousels via serial ports. It provides a framework for adding other device types easily. This has been used on AIX, IRIX, and SunOS systems as an RPC client, and on SunOS 5.x, IRIX 4.x IRIX 5.x and AIX 3.2 systems as an RPC server. Server and client code for VMS exist, but haven't been tested for several releases. Installation instructions can be found in the user documentation. Special installation instructions for the AIX pass-through driver are in the file jukedd/INSTALL in the distribution. Special installation instructions for the Solaris pass-through driver are in the file sst/INSTALL in the distribution. Build Requirements: The software can be compiled with most ANSI C compilers including gcc. It requires the -lds library on IRIX for scsi pass through on the server. You should be able to unpack the tar file, and run "make" and have a product directory for your OS platform created. Installation Instructions: Installation instructions are in the User Guide. Example Programs: Scripts to run the "juke" command line interface are found in the "scripts" directory. Dependencies: To act as a server for SCSI jukeboxes, juke needs an interface whereby it can specify raw SCSI command frames to be sent to the jukebox ("SCSI pass-through"). Juke uses a Sun-style RPC mechanism to have clients talk to the server. Authors: Marc Mengel Lauri Carpenter Unnamed Individuals at Sun and IBM who wrote their respective example SCSI drivers. Acknowledgements: Thanks go to Matt Wicks, Al Thomas, Jack Schmidt, and Frank Nagy for reviewing and commenting on the early design notes (see "doc/juke.latex"). Thanks got to Chris Lirakis for being an early beta tester and ginuea pig on early versions of juke, and for providing the example program for the users guide. Thanks to Ed Jedlika at IBM for chasing down permission to distribute the driver based on the IBM _Writing a Device Driver for AIX Version 3.2_ example driver. Thanks to the folks at Sun Microsystems for including a "you can distribute this" clause in their example SCSI driver. Restrictions: See the file LICENSE in the distribution. Support: See the file SUPPORT in the distribution.