Experimental Physics and
| |||||||||||||||
|
On Fri, 10 Jan 2020 at 21:34, J. Lewis Muir <[email protected]> wrote:
The spring 2019 EPICS Collaboration meeting (held at ITER) had a special session on packaging and other build and deployment methods. With your high level of interest and strength of opinion, you should have attended. Short answer: 4. Long answer: CODAC Core System (CCS) is RHEL plus EPICS plus EPICS Modules plus ITER tools. For a release, very much like for RHEL itself, a release build job builds the whole distribution from source in one go. Distribution uses the RedHat tools (Satellite server), where original upstream RHEL packages are merged with the results of our build. Package granularity is what I would see as natural: Base is one package, Asyn is one, Std is one, Calc is one, Sequencer is one ... pretty much any EPICS module produces the usual set of RPMs: binary plus -devel (plus sometimes -doc). Users build applications and create their application IOCs as RPMs: one RPM per IOC that contains its dynamically linked binary as well as the startup scripts and all dbd/db files the IOC needs. That RPM has dependencies to the EPICS Base and EPICS modules packages that the IOC was linked against. As a result, installing an IOC RPM package on a production machine pulls all the dependencies that are needed to run the IOC. For a CCS maintenance release, we run another build and push the updated RPMs to the Satellite server distribution channels. Users will get the maintenance release when they update. We do not promise binary compatibility, only source code compatibility for CODAC applications, i.e. that an application recompile will work with no changes required. Only a recompiled IOC RPM will pull the packages from a maintenance release when installed on a production system. (Usually, the maintenance releases are binary backward compatible, but we are not bound by promising it.) After all, this is a control system, where robustness is key. We are running a pretty expensive machine, and we really don't want to update crucial libraries on the fly in a running system without proper re-testing of the applications. Even if we could. Cheers, ~Ralph
| ||||||||||||||
ANJ, 12 Jan 2020 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |