packaging of epics-basedcontrol system software takashi nakamoto (cosylab japan)...

12
Packaging of EPICS-basedControl System Software Takashi Nakamoto (Cosylab Japan) [email protected]

Upload: myron-clifford-montgomery

Post on 22-Dec-2015

228 views

Category:

Documents


2 download

TRANSCRIPT

Packaging ofEPICS-basedControl System Software

Takashi Nakamoto (Cosylab Japan)[email protected]

2

Abstract

Packaging of control system software Control system software: EPICS base, driver

supports, modules, extensions, CSS, etc. Gives a consistent way to install, uninstall and

upgrade them. This work is sponsored by ITER

Examples in this presentation are taken from ITER CODAC Core System.

Visit ITER website for more details about CODAC Core System.https://www.iter.org/org/team/chd/cid/codac/coresystem

3

Motivation: typical problems

EPICS drivers, modules, extensions and relevant applications are provided in different way. In most cases, only source is provided and you

need to build it before you use it. Compilation errors

Build dependencies. Wrong build configuration.

Inconsistent way to install, uninstall and upgrade Many people scatter files in different directories

with different conventions. Complex dependencies. How do you manage which version you have?

Don’t waste your time tosolve the common problems!

Software Repository

4

Packaging & Repository

Make use of RPM, the standard packaging system. ITER: Built for 64-bit RHEL (currently 5.5).

You can also use CentOS, Scientific Linux, etc. Save compiled software on a shared repository

RHN Satellite Server yum repository exposed via HTTP

Distribute software through this repository.

EPICS base asyn

Sequencer …

5

Advantages from users perspective

Standard tools to install, uninstall and upgrade are available. yum install / yum remove / yum upgrade … any GUI tool

Compiled software packages are ready for you. Dependencies are automatically resolved. Scripts can be run after installation if any.

6

Unix standards

All packages are installed in accordance with the standard directory structure. Use of “alternative” to resolve path to executable

files. Run daemons in the same fashion of other Unix

services. Run a daemon with a separate account (not root).

optcodac-2.0

binepics

basemoduleextension

libinclude

etcopt

codac-2.0edmarchiver

init.dvar

optcodac-2.0

autosaveepicsIOCLog

Directory structure of CODAC Core System 2.0:

7

Available packages on CODAC Core System 2.0

EPICS base EPICS modules (record/device/driver support)

sncseq, asyn, s7plc, autosave, … ni6259, pxi6682

Tools and libraries VDCT, caSnooper, pycachannel, …

CSS (Control System Studio) BOY, BEAST, BEAUTY, Data Browser, …

SDD tools

8

How to make packages?

Maven Software project management tool. XML based configuration (pom.xml).

We developed Maven plug-ins to make RPMs of control system software. No need to write SPEC file. Particularly customized to quickly package EPICS

relevant software (IOC, modules, CSS etc.). Automatically detects dependencies.

Beginning part of pom.xml Packaging information in pom.xml

9

Basic packaging procedure of IOC

mvn-make-base-app src/main/epics/xxxApp src/main/epics/iocBoot/iocXXX src/main/edm …

Make database, configure st.cmd, make operators’ screen, etc.

mvn package This command compiles source, runs tests if any

and makes RPMs in target directory.

srcmain

edmepics

xxxAppiocXXX

testtarget

Example source directory structure:

xxx-ioc-0.0a1.x86_64.rpm

xxx-opi-0.0a1.x86_64.rpm

10

Example architectural view 1

IOC-EPICS base-Driver support

Operators’ clients-EPICS base-EDM-ALH

Archiving server-EPICS base-Channel Archiver

Developers’ workstation-EPICS base-EDM-ALH-VDCT-CSS

Common Software Repository

Software Repository

Developers directly uploadRPMs to the repository.

RPMs

RPMs

RPMsRPMs RPMs

RPMs

11

Example architectural view 2

IOC-EPICS base-Driver support

Operators’ clients-EPICS base-EDM-ALH

Common Software Repository

Software Repository

Developers upload only modified source code.

RPMs

RPMsRPMs

Continuous Integration server

Source Repository

RPMs

source

sourcesource

12

Conclusion

Save your time by using packaging system. Packaging system gives a consistent way to make

packages and distribute them.

Thank You for Your Attention !