EPICS Add On Products SourceRelease Control

Similar documents
Adding a System Call to Plan 9

In-Field Programming of Smart Meter and Meter Firmware Upgrade

Go SOLAR Online Permitting System A Guide for Applicants November 2012

On Demand Meter Reading from CIS

Lab #3 Automating Installation & Introduction to Make Due in Lab, September 15, 2004

SmartSacramento Distribution Automation

Using CVS to Manage Source RTL

Testing PL/SQL with Ounit UCRL-PRES

Final Report for LDRD Project Learning Efficient Hypermedia N avi g a ti o n

Real Time Price HAN Device Provisioning

Centrally Managed. Ding Jun JLAB-ACC This process of name resolution and control point location

NATIONAL GEOSCIENCE DATA REPOSITORY SYSTEM

NIF ICCS Test Controller for Automated & Manual Testing

Common CVS Command Summary

About CVS. 1 Version Control - what is it? why is it useful?

Entergy Phasor Project Phasor Gateway Implementation

Installation Guide for sundials v2.6.2

Advanced Synchrophasor Protocol DE-OE-859. Project Overview. Russell Robertson March 22, 2017

PJM Interconnection Smart Grid Investment Grant Update

METADATA REGISTRY, ISO/IEC 11179

PJM Interconnection Smart Grid Investment Grant Update

Integrated Volt VAR Control Centralized

Intelligent Grid and Lessons Learned. April 26, 2011 SWEDE Conference

Development of Web Applications for Savannah River Site

Bridging The Gap Between Industry And Academia

5A&-qg-oOL6c AN INTERNET ENABLED IMPACT LIMITER MATERIAL DATABASE

GA A22720 THE DIII D ECH MULTIPLE GYROTRON CONTROL SYSTEM

High Scalability Resource Management with SLURM Supercomputing 2008 November 2008

Contributors: Surabhi Jain, Gengbin Zheng, Maria Garzaran, Jim Cownie, Taru Doodi, and Terry L. Wilmarth

Version Control. Software Carpentry Github s Hello World Git For Ages 4 And Up You need source code control now

FY97 ICCS Prototype Specification

Washington DC October Consumer Engagement. October 4, Gail Allen, Sr. Manager, Customer Solutions

MULTIPLE HIGH VOLTAGE MODULATORS OPERATING INDEPENDENTLY FROM A SINGLE COMMON 100 kv dc POWER SUPPLY

Graphical Programming of Telerobotic Tasks

GA A22637 REAL TIME EQUILIBRIUM RECONSTRUCTION FOR CONTROL OF THE DISCHARGE IN THE DIII D TOKAMAK

ENDF/B-VII.1 versus ENDFB/-VII.0: What s Different?

ACCELERATOR OPERATION MANAGEMENT USING OBJECTS*

NFRC Spectral Data Library #4 for use with the WINDOW 4.1 Computer Program

TUCKER WIRELINE OPEN HOLE WIRELINE LOGGING

OPTIMIZING CHEMICAL SENSOR ARRAY SIZES

Portable Data Acquisition System

LosAlamos National Laboratory LosAlamos New Mexico HEXAHEDRON, WEDGE, TETRAHEDRON, AND PYRAMID DIFFUSION OPERATOR DISCRETIZATION

Eli System Administration Guide

v /4 Quick Short Test Report Technical Publication Transfer Test Hughes Tucson Support Systems Operation MIL-D-28001A (SGML) CTN Test Report AFTB-ID

Version control with RCS and CVS An introduction. Markus Bjartveit Krüger

ALAMO: Automatic Learning of Algebraic Models for Optimization

Site Impact Policies for Website Use

COMPUTATIONAL FLUID DYNAMICS (CFD) ANALYSIS AND DEVELOPMENT OF HALON- REPLACEMENT FIRE EXTINGUISHING SYSTEMS (PHASE II)

Crash Course in C++ R F L Evans. www-users.york.ac.uk/~rfle500/

WinCvs Version 1.1. Users Guide. Don Harper

Cross-Track Coherent Stereo Collections

Large Scale Test Simulations using the Virtual Environment for Test Optimization

CHANGING THE WAY WE LOOK AT NUCLEAR

Big Data Computing for GIS Data Discovery

Information to Insight

and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government or any agency thereof.

Common Persistent Memory POSIX* Runtime (CPPR) API Reference (MS21) API Reference High Performance Data Division

MAS. &lliedsignal. Design of Intertransition Digitizing Decomutator KCP Federal Manufacturing & Technologies. K. L.

zorder-lib: Library API for Z-Order Memory Layout

Member 1 Team Leader User ID 101

Cushion for SOFA 2. Table of contents. 1 Overview Cushion commands... 2

Saiidia National Laboratories. work completed under DOE ST485D sponsored by DOE

DERIVATIVE-FREE OPTIMIZATION ENHANCED-SURROGATE MODEL DEVELOPMENT FOR OPTIMIZATION. Alison Cozad, Nick Sahinidis, David Miller

Reduced Order Models for Oxycombustion Boiler Optimization

Describe CVS Tutorial

Lab #3 Automating Installation & Introduction to Make Due in Lab, September 17, 2003

Portions adapted from A Visual Guide to Version Control. Introduction to CVS

FSEC Procedure for Testing Stand-Alone Photovoltaic Systems

Version control system (VCS)

Electronic Weight-and-Dimensional-Data Entry in a Computer Database

Leonard E. Duda Sandia National Laboratories. PO Box 5800, MS 0665 Albuquerque, NM

@ST1. JUt EVALUATION OF A PROTOTYPE INFRASOUND SYSTEM ABSTRACT. Tom Sandoval (Contractor) Los Alamos National Laboratory Contract # W7405-ENG-36

Concurrent Versions System (cvs( cvs) Adviser Date August 31, 2004

Unix File System. Class Meeting 2. * Notes adapted by Joy Mukherjee from previous work by other members of the CS faculty at Virginia Tech

KCP&L SmartGrid Demonstration

Tim Draelos, Mark Harris, Pres Herrington, and Dick Kromer Monitoring Technologies Department Sandia National Laboratories

The ANLABM SP Scheduling System

for use with the WINDOW 4.1 Computer Program

Alignment and Micro-Inspection System

DOE EM Web Refresh Project and LLNL Building 280

Virtual Repository (VR) Version 1.0 Operation Manual

Data Management Technology Survey and Recommendation

Basic Survival UNIX.

Configuring Git. Matthieu Moy. configuring-git-slides.

Users Guide. Table of contents

The NMT-5 Criticality Database

Testing of PVODE, a Parallel ODE Solver

MMS DATA MODEL GUI INSTALLER GUIDE

Systems Programming and Computer Architecture ( ) Exercise Session 01 Data Lab

NEODC Service Level Agreement (SLA): NDG Discovery Client Service

CS 261 Recitation 1 Compiling C on UNIX

Grid Engine Users Guide. 7.0 Edition

Resource Management at LLNL SLURM Version 1.2

Software Development. Hack, hack, hack, hack, hack. Sorta works. Main.c. COMP s1

ESNET Requirements for Physics Reseirch at the SSCL

Protecting Control Systems from Cyber Attack: A Primer on How to Safeguard Your Utility May 15, 2012

A CVS Repository for the RNB Group

Optimizing Bandwidth Utilization in Packet Based Telemetry Systems. Jeffrey R Kalibjian

Ascent 6.1 Release Script for FileNet Content Manager 3.0. Release Notes

Southern Company Smart Grid

Transcription:

mn 1 4 1998 EPICS Add On Products SourceRelease Control Jim Kowalkowski, John Winnans, Janet Anderson, Marty Kraimer May 17,1994 A P S Release 3.11.6 DISCLAIMER This report was prepared as an account of work sponsored by an agency of the United States Government. Neither the United States Government nor any agency thereof, nor any of their employees, makes any warranty, express or implied, or assumes any legal liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product, or process disclosed, or represents that its use would not infringe privately owned rights. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government or any agency thereof. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government or any agency thereof.

2

Table of Contents CHAPTER 1 Introduction 1 1.1 Observations: 1 1.2 Overview 1 1.3 Definitions 2 1.3.1 1.3.2 1.3.3 1.3.4 CHAPTER 2 Add On Directory Structure 2 CVSROOT 3 EPICS-BASE 3 EPICS-ADD-ON 3 Tool Developer 4 2.1 Creating an Application Development Area 4 2.2 Checking Out an Existing Product 4 2.3 Creating a New Product 5 2.4 Importing an existing product 5 2.5 Preparing a new release 5 CHAPTER 3 Add On CONFi'IG Tools 7 3.1 ScriptFiles 7 3.1.Iget-new-version 7 3.1.2 set-op-version 7 3.2 Skeleton Makefiles 7 3.2.1 Leaf Node 7 3.2.2 Non Leaf Node 8 3.3 CONFIG 8 3.4 CONFIG-SITE-earcb 8 3.5 CONFIG-COMMON-earch> 3.6 CONFIG-COMMON 8 9 3.7 HRULES 9 3.8 RULES 9 CHAPTER 4 EPICS System Manager i o 4.1 Creating The Epics Add On Environment 10 4.2 Adding an Add On Product 10 4.3 Rebuilding an existing tool 10.I 4.4 Replacing An Existing Tool 11 4.5 WHAT ABOUT MULTIPLE EPICS SITES?? 11 iii

Contents iv

EPICS:Add On Products SourcdRelew Control May 17. 1994 Introduction CHAPTER 1 This document describes sourcelreleasecontrol for EPICS add on tools. 1.I Observations: 1. At APS we have had problems managing changes to individual tools. Locally devel- oped tools have been evolving at a rather rapid rate. Operators have experienced problems because of using the wrong version of a tool. 2. Up to release 3.11 all EPICS supplied tools were part of a release. As the number of tools expands this becomes hard to manage. Starting with release 3.1 1.6 we are unbundling tools, starting with all Channel Access client tools. 3. We are using cvs rather than sccs. 4. Developers have complained about imake. 1.2 USER Overview The user automatically executes that latest version of each add on tool that has been installed by the epics system manager. The user is also able to selectively choose other versions of add on tools. These features are implemented via two environment variables: PVT-ADD-ON and EPICS-ADD-ON. The following is done: The user has to add a command to hisher start up script that executes a script supplied by the epics system manager. This script does the following: 1. If environment variable EPICS-ADD-ON is not defined, it is defined. 2. The users path is modified as follows: a. If PVT-ADD-ON is defined then $PVT-ADD-ON/bin b. EPICS-ADD-ON/bin is searched second. c. The rest of the previous path is searched. is searched first. I The script is stored in Iusdlocallepicslcshrcor IusrAocaVepicsIprofile. Introduction 1

May 17. 1994 EPICS: Add On Products SourcdReleaseControl Tool Developer The following support is provided: Cvs is used to manage all source files A developer can develop in a private add-on directory. Makefiles are used to build tools. By following a few simple rules makefiles that work on multiple Unix architectures and for arbitrary epics releases can be created. In addition it is possible to easily use other epics add on tools. cvs add-on make Epics System Manager The epics system manager is responsible for maintaining a few configuration files that contain site specific definitions. Other configuration files are provided that are maintained by the epics community. 1.3 Definitions 1.3.1 Add On Directory Structure add-on src bin include lib man doc config <tool>...... A system wide add on area (EPICS-ADD-ON) is provided by the epics system manager. In addition each tool developer can create one or more private add on areas. bin This directory contains the executables generated from various tools. The makefile for each tool provides the option of make install. The installation is done by placing the new version into bin and setting a soft link to reference the latest version. Assume the tool is named <tool> and the last installed version is <too1>.00019. The result of make install is to create the files <t001>.00020 <tool> where <tool> is a soft link to <t001>.00020 Introduction 2

EPICS: Add On Products SourcdRelease Control May 17,1994 NOTE: when make install is performed in the EPICS-ADD-ON area users will see the newly installed tools immediately. NOTE: We are still deciding if we can find a nice way to base the release numbers on the release tag. include lib man doc This directory contains any include files generated by tools. This directory contains any libraries generated by tools. This directory contains Unix man pages. This directory contains tool release notes and other tool related documentation. s rclconf ig This contains a set of configuration files that are included directly or indirectly in the makefiles which build tools.the various files are described later in this document src/dool> Each tool has it s own directory, which can be an entire tree. Developers should be wary of constructing large trees. This means that many tools are being bundled into one which is normally a bad idea. 1.3.2 CVSROOT This is the cvs repository for epics. The cvs documentation should be consulted for a description of cvs. Version Management with CVS, Per Cederqvist A postscript version of this manual is stored in $EPICS-ADD-ON/doc/CVS-man.ps. NOTE: The individual tools are located at $CVSROOT/add-on. 1.3.3 EPICS-BASE A release of epics unbundled software. This document will not discuss epics releases. 1.3.4 EPICS-ADD-ON The epics system manager will build all tools that users expect to find in EPICS-ADD-ON Introduction 3

May 17, 1994 EPICS: Add On Products SourcelRelease Control Tool Developer CHAPTER 2 2.1 Creating an Application Development Area 1. Define the environment variable CVSROOT. 2. create the directories: add-on src bin include lib man doc... You will probably want your PVT-ADD-ON environment variable to point to here. The directories include, lib, man, etc. are created as necessary. 3. cd to src and execute the command: cvs checkout d config add-odconfig NOTE: The only config file you should ever need to edit is CONFIG.This file allows you to override definitions obtained from other config files. Any changes you make to this file should be considered temporary, i.e. when you finally prepare a new release build with the original CONFIG fde. NEVER commit any config file without consulting with your epics system manager. 2.2 Checking Out an Existing Product 1. cd <add-on>/src 2. cvs checkout -d <prod> add-od<prod> 3. cd<prod> 4. touch.depends 5. makedepend At this point you are ready to make changes to the product. Tool Developer 4

EPICS: Add On Products SourcdReleaseControl 2.3 May 17, 1994 Creating a New Product 1. cd <add-on>/src 2. mkdir <prod> 3. c d c p r o b 4. touch.depends 5. cvs import -m Creating add-on/<prod> <prod>- RO <prod>-ro 6. cvs add <filename> 7. Add the cvs keyword $Log$ someplace in each source file. The add command is issued for each file to be placed under cvs control. Don t forget the Makefile. 2.4 Importing an existing product In the source directory where the product currently exists execute: cvs import -m Importing -d <prod> add-on/<prod> <prod>-ro <prod>-ro WARNING: Make sure you have a clean directory structure before invoking import because it recursively descends all directories from where it is invoked. If the source files were previously maintained via sccs, it is best to import a version obtained via the sccs get command.if the sccs keywords such as %W% and %G% were used then the file will contain a record of the sccs version that was converted to cvs. Perform the following steps: 1. cd <add-on> 2. cvs checkout <prod> 3. c d c p r o b 4. touch.depends 5. Create a Makefile 6. cvs add Makefile 7. Create a.cvsignore file. 8. Add the cvs keyword $Log$ to each source file. If a Modification log was manually maintained previously, just add the $Log$ after the last log entry. 9. makedepend 10. make 11. make install 2.5 Preparing a new release 1. In your application area prepare and test the new version. Tool Developer 5

EPICS: Add On Products SourcdRelease Control May 17.1994 2. Execute the commands: cvs update cvs commit cvs tag <prod>-ra> 3. Notify the epics system manager that heishe can generate a new release. Tool Developer 6

EPICS: Add On Products SourcelRelease Control May 17.1994 Add On CONFIG Tools CHAPTER 3 The files residing in <add-on>/src/config make it easy for tool developers to create makefiles that work on multiple Unix architectures. 3.1 Script Files 3.1.1 get-new-version This command file is used by make install to find the latest version of an installed tool in $EPICS-ADD-ON/bin. 3.1.2 3.2 set-op-version This is used to select the specific executable version of an EPICS add-on program that will be used on future command invocations. It is meant to be run in the PVT-ADD-ON directory. Skeleton Makefiles 3.2.1 Leaf Node The following is a skeleton makefile for a leaf add-on product directory: ADD-ON =../.. include $(ADD-ON)/src/config/CONFIG #define USR-xxx definitions as necessary SRCS = <define all sources> OBJS = <define all objects> #Give the name of one or more products to build PROD = <products> include $(ADD-ON)/src/config/RULES #define a build rule for each product Add On CONFIG Tools 7

EPICS:Add On Products SourcelRelease Control May 17.1994 3.2.2 Non Leaf Node The following s a skeleton makefile for a non-leaf add-on directory: ADD-ON =../.. include $(ADD-ON)/src/config/CONFIG SUB-DIRS = <sub directories containing makefiles> include $(ADD-ON)/src/configERULES 3.3 CONFIG This file contains the following: ARCH = sun4 include $(ADD-ON)/src/config/CONFIG-SITl-$(ARCH # override CONFIG-SITl-$(ARCH) definitions here include $(ADD-ON)/src/config/CONFIG-COMMON # override CONFIG-COMMON definitionshere include $(ADD-ON)/src/config/CONFIG-COMMON-$(ARCH) # override CONFIG-COMMON-$(ARCH) definitions here This file is the only config file a tool developer should ever have to modify. Remember that the epics system manager is responsible for this file. Tool developers should never commit changes to this file. A tool developer can change the ARCH in case he/she want to build for another architecture. Definitions coming from the other include files can be overridden by adding definitions after the appropriate include. 3.4 CONFIG-SITE-<arch> This file contains site specific definitions for things like X11-LIB,etc. Two epics related definitions that must be assigned values are: This is the location of the release of the epics bases system used to build the various tools. For example this is where the channel access client library is located. This defines the location of the epics add on area. This is EPICS-ADD-ON defined so that a tool developer can have access to other tools that have been built in the epics add on area. EPICS-BASE This file is the responsibility of the epics system manager. I 3.5 CONFIG-COMMON-<arch> This file contains architecture dependent definitions that are common to all epics sites. Thus this file is maintained by the epics community. Add On CONFIG Tools 8

EPICS: Add On Products SourcdReleac Control 3.6 May 17. 1994 CONFIG-COMMON This file contains definitions, common to all epics sites, that are architectureindependent. It is maintained by the epics community. 3.7 HRULES 3.8 RULES If an add on tool is composed of a source subtree rather than a single source directory then each non leaf directory must contain a makefile that defines the symbol SUB-DIRS, which is a list of the immediate subdirectories of the node. all:: depend:: install:: Builds $(PROD) and $&lbname) Creates a file.depend containing dependency rules. Installs the current version on the tool in $(ADD-ON)/bin. For each file specified in $(PROD), it does the following (in bin): 1. Locates the latest version already in bin. It adds 1 to the version number. 2. Copies the file to dile>.<version>. 3. Creates a soft link from dile> to dile>.<version> clean:: Removes all.o and.a files in addition to all $(PROD) files. Note that of the above rules are followed by ::meaning that it is possible to add to each rule in each makefile. Add On CONFIG Tools 9

EPICS: Add On Products SourcelReIease Control May 17. 1994 EPICS System Manager CHAPTER 4 This chapter explains the duties of the epics system manager related to managing the add-on products. 4.1 Creating The Epics Add On Environment 1. Create the file CVSROOT. If you are supporting multiple architectures (sun4, hp, etc), there should be only one cvs repository. Thus CVSROOT can be a soft link. It is advisable to have a cvs repository devoted exclusively to EPICS and it s add on products. The cvsinit command must be issued to initialize the repository. 2. Install the epics base system. 3. Install the epics add on products as follows: Create the directory EPICS-ADD-ON. cd to $EPICS-ADD-ON. Untar the add-on products file. cd to SIC. perform a cvs import on config and on each product desired. rm-fr* perform cvs checkout on each product. Modify config/config and config/config-site-<arcb perform a make and make install on each product. 4. Provide a script for users to include in their.cshrc or profile. It adjusts their path to include PVT-ADD-ON and EPICS-ADD-ON. 4.2 Adding an Add On Product For add-ons that already exist but are not under cvs control use the cvs import command. After importing the product, follow the rules for rebuilding an existing product (including checkout). 4.3 1 Rebuilding an existing tool Normally if you are rebuilding an existing tool, it is because a local developer has made changes. Assume that the changes have been checked and the developer has issued a cvs commit command. 1. cd EPICS-ADD-ON/src EPICS System Manager 10 I _ -

EPICS: Add On Products SourcdRelease Control May 17. 1994 2. cvs checkout <tool>. This will normally include the -r flag. 3. cdctoob 4. make 5. make install 4.4 Replacing An Existing Tool Explain how to update tool obtained from elsewhere 4.5 WHAT ABOUT MULTIPLE EPICS SITES?? EPICS System Manager 11