1 / 12

Packaging of EPICS-basedControl System Software

Packaging of EPICS-basedControl System Software. Takashi Nakamoto (Cosylab Japan) takashi.nakamoto@cosylab.com. Abstract. Packaging of control system software Control system software: EPICS base, driver supports, modules, extensions, CSS, etc.

Download Presentation

Packaging of EPICS-basedControl System Software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Packaging ofEPICS-basedControl System Software Takashi Nakamoto (Cosylab Japan) takashi.nakamoto@cosylab.com

  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. 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? Motivation: typical problems Don’t waste your time to solve the common problems!

  4. 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. Packaging & Repository Software Repository asyn EPICS base … Sequencer

  5. 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. Advantages from users perspective

  6. 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). Unix standards Directory structure of CODAC Core System 2.0: • opt • codac-2.0 • bin • epics • base • module • extension • lib • include • etc • opt • codac-2.0 • edm • archiver • init.d • var • opt • codac-2.0 • autosave • epicsIOCLog

  7. 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 Available packages on CODAC Core System 2.0

  8. 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. How to make packages? Beginning part of pom.xml Packaging information in pom.xml

  9. 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. Basic packaging procedure of IOC Example source directory structure: • src • main • edm • epics • xxxApp • iocXXX • test • target xxx-ioc-0.0a1.x86_64.rpm xxx-opi-0.0a1.x86_64.rpm

  10. Example architectural view 1 Common Software Repository Software Repository RPMs RPMs RPMs RPMs RPMs RPMs • IOC • EPICS base • Driver support • Archiving server • EPICS base • Channel Archiver Developers directly uploadRPMs to the repository. • Operators’ clients • EPICS base • EDM • ALH • Developers’ workstation • EPICS base • EDM • ALH • VDCT • CSS

  11. Example architectural view 2 Common Software Repository Software Repository RPMs RPMs RPMs Continuous Integration server RPMs • IOC • EPICS base • Driver support source Source Repository … source source • Operators’ clients • EPICS base • EDM • ALH Developers upload only modified source code.

  12. Save your time by using packaging system. Packaging system gives a consistent way to make packages and distribute them. Conclusion Thank You for Your Attention !

More Related