FermiTools

This program will be closed after September 15th 2016. If you have questions or would like to discuss this please email

====================================

The Fermilab Software Tools Program (Fermitools) is an effort to provide the internet community with the Fermilab developed software packages that we have found most useful, and that we believe have general value to other application domains. The Fermilab Computing Sector is offering this software to the wider community, with the goal of entering into collaboration with interested and committed users in the deployment, joint development, and support of software of mutual benefit.

For any questions please contact:

List of Software currently supported under the Fermitools program

  • Transport - Charged Particle Beam Transport Software
  • Frontier - Distributes data from central databases read by many client systems
  • CAMAC - CAMAC software
  • Synoptic - Java Synoptic Toolkit
  • Contractor - a metabuild system
  • MXYZPTLK - C++ library for Automatic Differentiation and Differential Algebra
  • RGANG - Python tool for parallel processing
  • ECL - Electronic Collaboration Logbook
  • ECL iOS app - iOS ECL client app
  • cigetcert - get an X.509 certificate with SAML ECP and store proxy on local disk and MyProxy

License

Fermilab Software Legal Information (BSD License)
Copyright (c) 2009-2016, FERMI NATIONAL ACCELERATOR LABORATORY
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Neither the name of the FERMI NATIONAL ACCELERATOR LABORATORY, nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Legacy list of Old, mainly unsupported software

Please email if you are interested in any of this software.

Beam Transport
  • Turtle - Charged Particle Beam Transport Software
Database Tools
  • MISWEB - Web based CGI script to query Oracle databases
Front End Controller Software
  • FISION - VME (and other related busses) Access Software
Libraries and Toolkits
  • FCSLIB - FCS group's Python module library
  • FIPC - Farm Inter-Process Communication Toolkit
  • FermiPython - Demonstrates the use of Python and JPython
  • Plot-Widgets - Motif widgets for graphing and plotting
Miscellaneous Software Tools
  • CRLW - Electronic Logbook to monitor activities in an experiment control room.
  • Dfarm - Disk Farm System
  • Dervish - Astronomical Data Analysis Framework
  • FNAL-Kerberos-clientonly - Client applications to connect to FNAL Kerberized machines
  • Histo-Scope/Nplot - Interactive Histogramming and Plotting Tools
  • NGOP - Distributed Monitoring System
  • ROBIN - CORBA-based distributed objects and procedure calls
  • RUNJOB - Automates creation of production processing jobs for Monte Carlo generation, batch oriented data reprocessing and analysis tasks
  • Trace - Linux utility to view kernel
Parallel Processing
  • DBS - DART Bootstrap Systems
  • FBSNG - Farms Batch System Next Generation
Source Code Management
  • UCM - Unix Code Management Software
  • UPS - Unix Product Management Software
Tapes and Serial Media
  • FTT - Fermi Tape Tools
  • Juke - Robotic Tape Jukebox Control Software
  • OCS - Operator Communications Software

FermiToolsChecklist

Information and Guidelines for Fermitools Product Providers

Please note: if you put Fermilab software in a place where non-lab employees can obtain it, the software needs to have a Fermitools license in it, even if the software is not a Fermitools product.

Fermitools products are available as TAR files.

Software Submission Guidelines

Package the software product and send an email to: for assistance copying the files to KITS and/or ftp.fnal.gov/pub.
  • Include all the required files in the software.
  • Document the software.
  • Test that the software can be extracted from the package, built and run as described in the documentation.
  • Include an email and contact information for questions related to the software.

Distribution of Fermitools

Software Packaging

Software products should be packaged as a TAR file or in a format that can be copied over the network using ftp.

Required Files

The following files must be created for all software packages:
  • The Sources - code, makefiles, etc.
  • Documentation
  • Test Programs
  • Abstract (see abstract template)
  • Fermitools README (see README template)

Description of Files

The Sources

Please include ALL source code, header files, makefiles, and data files needed to build and configure the software in its final form on at least one computer platform. There is no commitment or guarantee that the software can be built, configured or run on platforms other than those explicitly listed in the software package documentation.

Documentation

Please include files in the software package along with user documentation for the software. Where possible, "on-line help" documentation should be provided in a form appropriate for the platform on which the software will run (e.g., main pages). Include internal documentation specifying the architecture and internals of the software (e.g. a paragraph is sufficient for a single file package; a full internal architecture description for a complete software system.

Tests

All software packages should have a test program that can be built and run to verify correct installation and functioning of the software. Any tests developed in conjunction with the software should be packaged and distributed with it.

Abstract

This should be no more than a half a page of description for the product. If you include links to other pages within the abstract, please create the file in HTML format; otherwise plain ASCII is acceptable.

README

The README file gives a longer, more detailed description of the product. At minimum, it should include the description, a pointer to documentation, notification of any required hardware and/or software, how to perform the installation and how to run the software
The Fermitools README also includes the required Terms and Conditions.

Preparing the Product Files

Product Providers should build their README file using the template. This can be saved to a local file for further editing, if desired. Any changes to required text will cause the product to be rejected, so be sure no changes are made in this portion of the README file. Combine the README file with the other required files in an archive file and email for instructions on how to complete the next step.

The Abstract and links to the product pages and information will be housed on the product’s Fermitools wiki page. Other links supplied by the Product Provider will also be available.

Templates and Files

Abstract File Template

A product abstract will have links to the product's README file, the software, documentation, the Product web Pages and an abstract containing a brief description of the software. Product Providers are encouraged to add more information in the form of local files or links.

README File Template

At minimum, please include the following content:
Product Name, Product Version, Date, Author(s), Author Mailstop, Product Description, Documentation.

Last modified: 12/1/2011