EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: EPICS release series after 7.0: 7.1 or 8.0?
From: Ralph Lange via Tech-talk <[email protected]>
To: EPICS Tech Talk <[email protected]>
Date: Fri, 10 Jan 2020 23:30:11 +0100
On Fri, 10 Jan 2020 at 21:34, J. Lewis Muir <[email protected]> wrote:

I don't know how you're doing it, so I'd be very interested to hear if
you have time to briefly share.  But I would guess one or more of the
following makes it work for you:

1. Users only use the command line tools that come with EPICS.

2. Users don't compile any programs that link with the libraries
   provided in your EPICS binary packages, nor do they create any binary
   packages of their own that depend on your binary packages.

3. When you say "EPICS as binary packages," you mean only what has
   been in the past referred to as EPICS Base.  You do not mean EPICS
   modules.

4. You provide binary packages for EPICS as well as EPICS modules, and
   you build them all at once from the same source, and to upgrade, a
   user must upgrade all of the binary packages at once or none of them.

5. You provide one monolithic EPICS binary package that includes EPICS
   and all EPICS modules.

I'm not saying all of these will be true, but I think some or parts of
some of them must be true in order for it to work for you.  I'd be very
interested to hear how you have made things work using a binary package
management system.

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


References:
EPICS release series after 7.0: 7.1 or 8.0? J. Lewis Muir via Tech-talk
Re: EPICS release series after 7.0: 7.1 or 8.0? Johnson, Andrew N. via Tech-talk
Re: EPICS release series after 7.0: 7.1 or 8.0? Wang Xiaoqiang via Tech-talk
Re: EPICS release series after 7.0: 7.1 or 8.0? Johnson, Andrew N. via Tech-talk
Re: EPICS release series after 7.0: 7.1 or 8.0? Wang Xiaoqiang via Tech-talk
Re: EPICS release series after 7.0: 7.1 or 8.0? Michael Davidsaver via Tech-talk
Re: EPICS release series after 7.0: 7.1 or 8.0? J. Lewis Muir via Tech-talk
Re: EPICS release series after 7.0: 7.1 or 8.0? Ralph Lange via Tech-talk
Re: EPICS release series after 7.0: 7.1 or 8.0? J. Lewis Muir via Tech-talk

Navigate by Date:
Prev: RE: Carriage Return in asyn record IEOS/OEOS fields Mark Rivers via Tech-talk
Next: RE: subArray record [SEC=UNOFFICIAL] STARRITT, Andrew via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: Re: EPICS release series after 7.0: 7.1 or 8.0? J. Lewis Muir via Tech-talk
Next: Re: EPICS release series after 7.0: 7.1 or 8.0? Benjamin Franksen via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
ANJ, 12 Jan 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·