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  <20182019  2020  2021  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  <20182019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Packaging EPICS and support modules as RPM
From: Abdalla Ahmad via Tech-talk <[email protected]>
To: Michael Davidsaver <[email protected]>, "[email protected]" <[email protected]>
Date: Mon, 26 Nov 2018 09:28:46 +0000
Hi Michael

Thank you very much. That was really helpful. I agree too with separating sets of packages for each base version.

I have 2 questions in return:
1. The base build recipe you mentioned, is it how you do it on Debian systems or is it how EPICS build system behave?
2. Regarding your rant :D , What version should I put for my RPM for EPICS base 3.15.6? Doesn't having 3.15.6 as the package version make sense? I mean I have installed a package called epics-base and its version is 3.15.6

Best Regards,
Abdalla.

-----Original Message-----
From: Michael Davidsaver [mailto:[email protected]] 
Sent: Sunday, November 25, 2018 7:38 PM
To: Abdalla Ahmad <[email protected]>
Cc: [email protected]
Subject: Re: Packaging EPICS and support modules as RPM

On 11/22/18 1:07 AM, Abdalla Ahmad via Tech-talk wrote:
...
> Anything that depends on EPICS base must have its EPICS_BASE defined in the configure/RELEASE file, and since there are more than one major version of EPICS, some might try base 3.14, 3.15 or 3.16 or even 7. In order for the RPM spec file to work properly, EPICS_BASE must be hardcoded in configure/RELEASE. So the question is, does it make since to create separate repo for each base version and each repo contains all support modules built against the corresponding base version? What we think of right now is 4 repos: base 3.14, base 3.15, base 3.16 and base 7. What do you think of this approach?

Having answered some of the "how" of epicsdeb, I'll talk about the "why".

From the Debian side, the questions start with:

1. Why not install everything under /usr?  eg. /usr/include/cadef.h

One of my early realizations was that there will always be a desire to preserve the possibility to ignore the system packages and build/run Base under /home.  It might be to test/workaround a bug, or to use features from newer releases, or because some users want to be "self sufficient".

To ensure this is preserved, I decided to avoid installing anything in the default build time search paths.

2. Why /usr/lib/epics ?

This is a place where Debian policy allows a more or less arbitrary tree, which deflects most of the criticism that the Base install layout doesn't follow the usual *NIX conventions.  This avoids more invasive Makefile changes in Base, and any downstream modules with custom install rules (eg. for .ui files).


From the EPICS side, the questions start with:

3. Why not separate /usr/lib/epics/base, /usr/lib/epics/asyn, ... ?

This separation means extra work in managing configure/RELEASE in downstream modules.  For me then, the question isn't why to combine, but rather why to separate?

The package manager keeps track of which file came from which package.
So uninstall is always clean, and any name collisions would be prevented during the package install phase.


4. Why not /usr/lib/epics/3.15.1/... ?

That is, why only allow a single Base version to be installed?
The question usually coming from experience with NFS "installs".

With a package manager, in addition to the packages themselves it is necessary to consider the package repository.  Or rather, repositories.
It will be normal to have separate, and self consistent, sets of packages for different combinations of modules versions.

With Debian, use of /usr/lib/epics creates the restriction that at any given time, each computer can have packages from only one repository (really from one self consistent set).


That said, the main reason I didn't do this is a technical limitation of Debian packages, which may not exist (anymore) with RPM.

To accomplish side-by-side install would require different package names.
eg. instead of "epics-dev" having "epics3.15.1-dev" and "epics3.16.2-dev".

The mechanics of deb packages make it very difficult to compute binary package names.  So to go this route would have meant a lot of tedious manual changes to packaging files.

In practice at NSLS2 this wasn't a major restriction.
Computers weren't upgraded all at once, and existing management tools know how to handle switching Apt repositories.


Also, as I minor rant.  Your collection of specific package versions is a distribution.
Please don't use a Base version as a distribution version!  There is a reason that eg. Debian 8.0.1 isn't numbered 2.24 (the glibc version).

Replies:
Re: Packaging EPICS and support modules as RPM Michael Davidsaver via Tech-talk
References:
Packaging EPICS and support modules as RPM Abdalla Ahmad via Tech-talk
Re: Packaging EPICS and support modules as RPM Michael Davidsaver via Tech-talk

Navigate by Date:
Prev: Re: Packaging EPICS and support modules as RPM Michael Davidsaver via Tech-talk
Next: Re: Packaging EPICS and support modules as RPM Michael Davidsaver 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  <20182019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Packaging EPICS and support modules as RPM Michael Davidsaver via Tech-talk
Next: Re: Packaging EPICS and support modules as RPM Michael Davidsaver 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  <20182019  2020  2021  2022  2023  2024 
ANJ, 26 Nov 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·